评估机器学习模型质量

Beginner

This tutorial is from open-source community. Access the source code

简介

在机器学习中,评估模型预测的质量非常重要。这有助于我们了解模型的性能如何,以及它是否可以被信任来做出准确的预测。scikit-learn 库提供了几种指标和评分方法来量化预测的质量。

在本实验中,我们将探索 scikit-learn 提供的三种不同的模型评估 API:估计器评分方法、评分参数和指标函数。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作的验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

估计器评分方法

估计器评分方法是 scikit-learn 为每个估计器提供的默认评估标准。它计算一个代表模型预测质量的分数。你可以在每个估计器的文档中找到更多相关信息。

以下是对一个估计器使用 score 方法的示例:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_digits

X, y = load_digits(return_X_y=True)
clf = LogisticRegression()
clf.fit(X, y)

score = clf.score(X, y)
print("Score:", score)

评分参数

Scikit-learn 在一些模型评估工具中提供了一个“scoring”参数,比如交叉验证和网格搜索。“scoring”参数控制在评估期间应用于估计器的指标。

以下是在交叉验证中使用“scoring”参数的示例:

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_digits

X, y = load_digits(return_X_y=True)
clf = LogisticRegression()

scores = cross_val_score(clf, X, y, cv=5, scoring='accuracy')
print("Scores:", scores)

指标函数

scikit-learn 的 metrics 模块实现了几个用于特定目的评估预测误差的函数。这些函数可用于计算模型预测的质量。

以下是使用 metrics 模块中的 accuracy_score 函数的示例:

from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

clf = LogisticRegression()
clf.fit(X_train, y_train)

y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

总结

在本实验中,我们学习了 scikit-learn 提供的三种不同的模型评估 API:估计器评分方法、评分参数和指标函数。这些 API 使我们能够评估模型预测的质量,并了解模型的性能如何。