📅  最后修改于: 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
函数中可用的三种类型的评分器参数:字符串类型、评分函数类型和评分器对象类型。使用这些参数类型,可以轻松地计算模型的性能得分,并进行交叉验证。