Python Scikit学习自定义评分功能
我目前正在使用scikit learn的开发分支:0.15-git 尝试使用自定义评分函数初始化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
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_检验
进行比较,但有时它会做一些不同的事情。这有用吗?