2016-07-27 4 views
1

Я написал свой собственный объект scorer, который необходим для моей проблемы и который я назвал «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) 

Это работает. Однако это не так:

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

ответ

0

sklearn только отсутствует эта особенность. Оценка внутренне привязана к различным метрикам для разных типов оценок. Например, классификаторы привязаны к метрике оценки точности классификации, для регрессоров она привязана к r2_score.

Вы можете посмотреть эти связки в sklearn.base, каждый миксин (например, ClassifierMixin) предоставляет этот метод score.

Istead этого вы можете просто запустить:

p_value_scoring_object(p_value_scoring_object, iris.data, iris.target) 
Смежные вопросы