5. 可视化#
Scikit-learn 定义了一个简单的 API,用于为机器学习创建可视化。这个 API 的关键特性是允许快速绘图和视觉调整,而无需重新计算。我们提供了 Display
类,这些类公开了两种创建绘图的方法: from_estimator
和 from_predictions
。 from_estimator
方法将接受一个拟合好的估计器和一些数据( X
和 y
),并创建一个 Display
对象。有时,我们只想计算一次预测,这时应该使用 from_predictions
。在下面的示例中,我们为拟合的支持向量机绘制 ROC 曲线:
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_wine
X, y = load_wine(return_X_y=True)
y = y == 2 # 二值化
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
svc = SVC(random_state=42)
svc.fit(X_train, y_train)
svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
返回的 svc_disp
对象允许我们继续在未来的绘图中使用已经计算好的 SVC 的 ROC 曲线。在这种情况下, svc_disp
是一个 RocCurveDisplay
,它将计算的值存储为名为 roc_auc
、 fpr
和 tpr
的属性。请注意,我们可以从支持向量机获取预测,然后使用 from_predictions
而不是 from_estimator
。接下来,我们训练一个随机森林分类器,并通过使用 Display
对象的 plot
方法再次绘制先前计算的 ROC 曲线。
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)
ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(rfc, X_test, y_test, ax=ax, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
请注意,我们将 alpha=0.8
传递给绘图函数以调整曲线的 alpha 值。
示例
5.1. 可用的绘图工具#
5.1.1. 显示对象#
|
校准曲线(也称为可靠性图)可视化。 |
|
部分依赖图 (PDP)。 |
|
决策边界可视化。 |
|
混淆矩阵可视化。 |
|
DET曲线可视化。 |
|
精确召回率可视化。 |
|
预测回归模型的误差可视化。 |
|
ROC曲线可视化。 |
学习曲线可视化。 |
|
验证曲线可视化。 |