Scikit-learn自定义评分函数

4 投票
1 回答
2864 浏览
提问于 2025-04-18 10:17

我现在正在使用scikit-learn的开发版本:0.15-git。

我尝试用一个自定义的评分函数来初始化一个RidgeClassifierCV对象,但遇到了错误,提示信息是TypeError: __init__() got an unexpected keyword argument 'scoring'

model = RidgeClassifierCV(scoring=make_scorer(score_func))

根据文档,RidgeClassifier确实有一个scoring参数。但从函数的定义来看,应该用score_func这个参数。不过,把sklearn.metrics.make_scorer的输出作为score_func传进去也不行。有没有什么想法?

我的最终目标是让RidgeClassifierCV能够处理多分类(一个对所有)的roc auc分数,用于评分函数。

1 个回答

2

score_func 和现在标准的 scikit-learn 评分对象不同,它需要的参数是 y_true, y_pred,而不是 estimator, X, y_true。所以,如果你自己写了一个评分函数,可以处理 Ridge 分类器的预测结果,那么你需要使用这个参数格式。

虽然 score_func 已经不推荐使用了,但在当前的主分支状态下,它似乎是唯一的选择。随着 0.15 版本的发布,这种情况几乎肯定会改变,届时会有评分对象可用。文档中错误的描述也是一个需要修正的问题。

撰写回答