Python Scikit学习自定义评分功能

Python Scikit学习自定义评分功能,python,scikit-learn,Python,Scikit Learn,我目前正在使用scikit learn的开发分支:0.15-git 尝试使用自定义评分函数初始化RidgeClassifierCV对象当前失败,错误消息为TypeError:\uuuuu init\uuuuuuuu()获取了意外的关键字参数“评分” model = RidgeClassifierCV(scoring=make_scorer(score_func)) 根据,RidgeClassifier采用评分参数。但是根据函数签名,参数是score\u func。但是,将sklearn.met

我目前正在使用scikit learn的开发分支:0.15-git

尝试使用自定义评分函数初始化
RidgeClassifierCV
对象当前失败,错误消息为
TypeError:\uuuuu init\uuuuuuuu()获取了意外的关键字参数“评分”

model = RidgeClassifierCV(scoring=make_scorer(score_func))
根据,RidgeClassifier采用
评分
参数。但是根据函数签名,参数是
score\u func
。但是,将
sklearn.metrics.maker\u scorer
的输出传递为
score\u func
也会失败。有什么想法吗


最终目标是让RidgeClassifierCV使用用于评分功能的多类(一对所有)roc auc分数。

score\u func
与现在标准的scikit学习评分对象相反,使用参数
y\u true,y\u pred
,而不是
估计器,X,y\u true
。因此,如果您编写了自己的评分函数,可以处理来自脊分类器的预测,那么这就是您需要的签名


尽管不推荐使用
score\u func
,但它似乎是主分支当前状态下的唯一选项。这几乎肯定会随着
0.15
发布而改变,评分对象将可用。错误地记录这一事实是一个不一致的情况,也应该加以纠正。

在参数文档中,他们说“score”,但函数定义只有一个“score\u func”可选参数?好吧,对不起,你已经提过了。我点击了“我想我可能已经解决了你的问题”的链接,没有任何担心——澄清起来从来都没有坏处。这是一个。1)这是项目进展最快的方式——用户发现问题并报告问题。请继续这样。2) 有一些非常有效率的人参与了这个项目,你刚才看到了其中一个。自定义分数函数是否仍然传递给make_scorer()?我正在使用的当前评分函数的签名实际上是
y\u true
y\u pred
。如果您的评分函数被调用,例如
scoring\u function
,那么将其作为
score\u func=scoring\u function
传递,它应该可以工作(并给您一条贬损消息)现在就有意义了。谢谢这仍然正确吗?看起来make_score已经接管了自定义评分,但由于某种原因,它不再接受y_true和y_pred?所有旧的评分函数仍然存在于
sklearn中。度量
,但估计器现在将评分器对象作为输入,该对象将估计器以及
X_测试
y_测试
。它通常使用估计器和
X_检验
来创建
y_pred
,然后使用一个度量来与
y_检验
进行比较,但有时它会做一些不同的事情。这有用吗?