📜  cross_val_score 评分参数类型 - Python (1)

📅  最后修改于: 2023-12-03 15:14:17.369000             🧑  作者: Mango

cross_val_score 评分参数类型 - Python

在使用 scikit-learn 库中的 cross_val_score 函数进行交叉验证时,我们需要指定一个评分器作为评分参数。在本文中,我们将介绍 cross_val_score 函数中可用的评分参数类型和示例代码。

评分器的类型

cross_val_score 函数中,评分器参数可以是以下几种类型之一:

字符串类型

如果我们希望使用 scikit-learn 库中的标准评分器,则可以指定它的名称作为字符串类型的评分器参数。例如,可以使用 "accuracy" 表示准确率评分器,使用 "f1_micro" 表示宏平均 F1 分数评分器。

from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier

iris = load_iris()
X = iris.data
y = iris.target

clf = DecisionTreeClassifier()

scores = cross_val_score(clf, X, y, cv=5, scoring="accuracy")
print(scores)
评分函数类型

除了字符串类型的评分器参数外,我们还可以使用自定义函数作为评分器参数。这种情况下,我们需要定义一个函数来计算模型的评分。该函数接受预测结果和真实结果作为参数,并返回一个单个的评分值。例如,可以使用下面的函数作为评分器参数:

def custom_scorer(y_true, y_pred):
  # 模型评分计算逻辑
  return score

然后可以将该函数作为评分器参数传递给 cross_val_score 函数:

scores = cross_val_score(clf, X, y, cv=5, scoring=custom_scorer)
print(scores)
评分器对象类型

最后,我们还可以使用 scikit-learn 库中的评分器对象作为评分器参数。评分器对象必须实现 score 方法,该方法接受预测结果和真实结果作为参数,并返回一个单个的评分值。例如,可以使用下面的代码使用 make_scorer 函数创建一个自定义的评分器对象:

from sklearn.metrics import make_scorer
from sklearn.metrics import accuracy_score

custom_scorer = make_scorer(accuracy_score)

scores = cross_val_score(clf, X, y, cv=5, scoring=custom_scorer)
print(scores)
总结

在本文中,我们介绍了 cross_val_score 函数中可用的三种类型的评分器参数:字符串类型、评分函数类型和评分器对象类型。使用这些参数类型,可以轻松地计算模型的性能得分,并进行交叉验证。