使用Scorer对象进行分类器分数方法

时间:2016-07-27 13:43:48

标签: machine-learning scikit-learn

我已经编写了我的自定义得分手对象,这对我的问题是必要的,而且我已经调用了#34; p_value_scoring_object"。

对于函数sklearn.cross_validation.cross_val_score,其中一个参数是"得分",允许使用此得分手对象。

但是,此选项不适用于分类器的分数方法。 sklearn刚刚缺少这个功能,还是有办法绕过它?

from sklearn.datasets import load_iris
from sklearn.cross_validation import cross_val_score
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(random_state=0)
iris = load_iris()
cross_val_score(clf, iris.data, iris.target, cv=10,scoring=p_value_scoring_object)

这很有效。但是,这并不是:

clf.fit(iris.data,iris.target)
clf.score(iris.data,iris.target,scoring=p_value_scoring_object)

1 个答案:

答案 0 :(得分:0)

sklearn只是缺少这个功能。分数在内部绑定到不同类型的估算器的不同指标。例如,分类器被绑定到分类准确度分数度量,对于归类为r2_score的回归量。

您可以在sklearn.base中查看这些绑定,每个mixin(例如ClassifierMixin)都提供此score方法。

你可以这样运行:

p_value_scoring_object(p_value_scoring_object, iris.data, iris.target)