scikit-learn分类器中的分数函数位于何处?

alv*_*vas 1 python function machine-learning scikit-learn cross-validation

在内部运行交叉验证时scikit-learn,所有分类器都有一个工厂函数score(),我可以轻松检查分类器的准确性,例如来自http://scikit-learn.org/stable/modules/cross_validation.html

>>> import numpy as np
>>> from sklearn import cross_validation
>>> from sklearn import datasets
>>> from sklearn import svm

>>> iris = datasets.load_iris()
>>> iris.data.shape, iris.target.shape
((150, 4), (150,))
>>> X_train, X_test, y_train, y_test = cross_validation.train_test_split(
...     iris.data, iris.target, test_size=0.4, random_state=0)

>>> X_train.shape, y_train.shape
((90, 4), (90,))
>>> X_test.shape, y_test.shape
((60, 4), (60,))

>>> clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
>>> clf.score(X_test, y_test)                           
0.96...
Run Code Online (Sandbox Code Playgroud)

在深入了解github repo之后scikit-learn,我仍然无法弄清楚函数的clf.score()功能在哪里.

有这个链接,但它不包含score(),https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/svm/classes.py

分类器的score()功能在哪里sklearn

我可以轻松地实现自己的分数功能,但目的是建立我的库,使其与sklearn分类器保持一致,而不是提出我自己的评分函数 =)

jak*_*vdp 5

score()scikit-learn分类器的默认方法是准确度分数,并ClassifierMixin类中定义.这个mixin是大多数(全部?)scikit-learn的内置分类器的父类.

如果您正在编写自己的分类器,我建议继承此mixin BaseEstimator,以便您自动获得模型的评分和其他功能.