sklearn评分函数的参数是什么?

问题描述 投票:13回答:4

我最近看了一堆sklearn教程,这些教程都很相似,因为他们通过以下方式获得了合适的优点:

clf.fit(X_train, y_train)
clf.score(X_test, y_test)

它会吐出来:

0.92345...

或其他一些分数。

我很好奇clf.score函数的参数或它如何评分模型。我浏览了整个互联网,但似乎无法找到它的文档。有人知道吗?

python scikit-learn
4个回答
17
投票

它需要一个特征矩阵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.

而回归的那个是相似的。


2
投票

不确定我是否正确理解了你的问题。显然,为了计算一些误差或相似性,大多数评分函数接收一组参考值(y_true)和一个由模型预测的值数组(y_score)作为主要参数,但也可能接收一些特定于度量的其他参数。评分函数通常不需要X值。

我建议查看评分函数的源代码,以了解它们的工作原理。

以下是scikit-learn中的评分函数列表。


1
投票

这是classifier dependent。每个分类器都提供自己的评分功能。

Estimator评分方法:Estimators有一个评分方法,为他们设计解决的问题提供默认评估标准。本页未对此进行讨论,但在每个估算工具的文档中都有讨论。

除了在其中一个答案中提供给您的文档之外,您可以做的唯一额外事情是阅读估算器提供的参数类型。例如,SVM分类器SVC具有以下参数score(X, y, sample_weight=None)


0
投票

语法:sklearn.metrics.accuracy_score(y_true,y_pred,normalize = True,sample_weight = None)

在多标签分类中,此函数计算子集精度:为样本预测的标签集必须与y_true中的相应标签集完全匹配。

参数:y_true:1d数组,或标签指示符数组/稀疏矩阵地面实况(正确)标签。

y_pred:1d数组,或标签指示符数组/稀疏矩阵预测标签,由分类器返回。

normalize:bool,optional(default = True)如果为False,则返回正确分类的样本数。否则,返回正确分类的样本的分数。

sample_weight:shape = array = [n_samples],可选样本权重。

返回: score:float如果normalize == True,则返回正确分类的样本(float)的分数,否则返回正确分类的样本数(int)。

最佳性能是1,normalize == True,normalize == False的样本数。

有关更多信息,请参阅:[https://scikit-learn.org/stable/modules/model_evaluation.html#accuracy-score][1]

© www.soinside.com 2019 - 2024. All rights reserved.