我最近看了一堆sklearn教程,这些教程都是相似的,因为他们通过以下方式获得了合适的好处:
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
它吐了出来:
0.92345...
或其他一些分数。
我很好奇clf.score函数的参数或它如何评分模型。我查看了整个互联网,但似乎无法找到它的文档。有谁知道吗?
答案 0 :(得分:18)
它需要一个特征矩阵X_test
和预期的目标值y_test
。将X_test
的预测与y_test
进行比较,并返回准确度(对于分类器)或R²分数(对于回归估计量)。
在score
方法的文档字符串中非常明确地说明了这一点。分类的那个读
Returns the mean accuracy on the given test data and labels.
Parameters
----------
X : array-like, shape = (n_samples, n_features)
Test samples.
y : array-like, shape = (n_samples,)
True labels for X.
sample_weight : array-like, shape = [n_samples], optional
Sample weights.
Returns
-------
score : float
Mean accuracy of self.predict(X) wrt. y.
和回归的类似。
答案 1 :(得分:2)
不确定我是否正确理解了您的问题。显然,要计算一些错误或相似性,大多数评分函数会接收一组参考值(y_true
)和一个由模型预测的值数组(y_score
)作为主要参数,但也可能会收到一些其他值参数,特定于指标。评分函数通常不需要X值。
我建议查看评分函数的源代码,以了解它们的工作原理。
以下是scikit-learn中的评分函数列表。
答案 2 :(得分:1)
这是classifier dependent。每个分类器都提供自己的评分功能。
Estimator得分方法:Estimators有一个得分方法 他们设计的问题的默认评估标准 解决。这个不在本页讨论,但在每个估算器中都有讨论 文档。
除了在其中一个答案中提供给您的文档之外,您可以做的唯一额外事情是阅读估算器提供的参数类型。例如,SVM分类器SVC具有以下参数score(X, y, sample_weight=None)
答案 3 :(得分:1)
这是为Regressor计算分数的方法:
得分(自我,X,y,sample_weight =无)[来源] 返回预测的确定系数R ^ 2。
系数R ^ 2定义为(1-u / v),其中u是平方的残差和((ytrue-ypred)** 2).sum()和v是平方的总和( (ytrue-ytrue.mean())** 2).sum()。可能的最高分是1.0,并且可能为负(因为该模型可能会更差)。不管输入特征如何,始终预测y期望值的恒定模型将获得0.0的R ^ 2分数。
来自sklearn文档。
答案 4 :(得分:0)
语法: sklearn.metrics.accuracy_score(y_true,y_pred,normalize = True,sample_weight = None)
在多标签分类中,此函数计算子集准确性:为样本预测的标签集必须与y_true中的相应标签集完全匹配。
参数: y_true: 1d类数组或标签指示符数组/稀疏矩阵 地面真相(正确)标签。
y_pred: 1d类数组,或标签指示符数组/稀疏矩阵 预测的标签,由分类器返回。
normalize: bool,可选(默认= True) 如果为False,则返回正确分类的样本数。否则,返回正确分类的样本的分数。
sample_weight:形状为[n_samples]的类似数组的形状,可选 样品重量。
返回:
得分:浮动
如果normalize == True,则返回正确分类的样本的分数(浮点数),否则返回正确分类的样本数(整数)。
使用normalize == True时,最佳性能为1;使用normalize == False时,样本数量为最佳。
有关更多信息,请参考: [https://scikit-learn.org/stable/modules/model_evaluation.html#accuracy-score][1]