5. 可视化#

Scikit-learn 定义了一个简单的 API,用于为机器学习创建可视化。这个 API 的关键特性是允许快速绘图和视觉调整,而无需重新计算。我们提供了 Display 类,这些类公开了两种创建绘图的方法: from_estimatorfrom_predictionsfrom_estimator 方法将接受一个拟合好的估计器和一些数据( Xy ),并创建一个 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)
_images/visualizations-1.png

返回的 svc_disp 对象允许我们继续在未来的绘图中使用已经计算好的 SVC 的 ROC 曲线。在这种情况下, svc_disp 是一个 RocCurveDisplay ,它将计算的值存储为名为 roc_aucfprtpr 的属性。请注意,我们可以从支持向量机获取预测,然后使用 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)
_images/visualizations-2.png

请注意,我们将 alpha=0.8 传递给绘图函数以调整曲线的 alpha 值。

示例

5.1. 可用的绘图工具#

5.1.1. 显示对象#

calibration.CalibrationDisplay(prob_true, ...)

校准曲线(也称为可靠性图)可视化。

inspection.PartialDependenceDisplay(...[, ...])

部分依赖图 (PDP)。

inspection.DecisionBoundaryDisplay(*, xx0, ...)

决策边界可视化。

metrics.ConfusionMatrixDisplay(...[, ...])

混淆矩阵可视化。

metrics.DetCurveDisplay(*, fpr, fnr[, ...])

DET曲线可视化。

metrics.PrecisionRecallDisplay(precision, ...)

精确召回率可视化。

metrics.PredictionErrorDisplay(*, y_true, y_pred)

预测回归模型的误差可视化。

metrics.RocCurveDisplay(*, fpr, tpr[, ...])

ROC曲线可视化。

model_selection.LearningCurveDisplay(*, ...)

学习曲线可视化。

model_selection.ValidationCurveDisplay(*, ...)

验证曲线可视化。