2016-07-27 74 views
1

我寫了我的自定義記分器對象,這是我的問題和我稱爲「p_value_scoring_object」所必需的。使用Scorer對象進行分類器評分方法

對於函數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) 

This Works。但是,這不是:

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

回答

0

sklearn只是缺乏該功能。對於不同類型的估計量,評分在內部綁定到不同的度量標準。例如,分類器綁定到分類準確性分數度量標準,對於迴歸器,它被綁定到r2_score

你可以看看sklearn.base中的這些綁定,每個mixin(例如ClassifierMixin)都提供了這個score方法。

Istead的這一點,你可以運行:

p_value_scoring_object(p_value_scoring_object, iris.data, iris.target) 
相關問題