5. 可视化#
Scikit-learn 定义了一个简单的 API 用于创建机器学习的可视化。该 API 的关键特性是允许快速绘制和进行视觉调整,而无需重新计算。我们提供了 Display
类,它们公开了两种用于创建绘图的方法:from_estimator
和 from_predictions
。 from_estimator
方法将接受一个拟合的估计器和一些数据 (X
和 y
),并创建一个 Display
对象。有时,我们只想计算一次预测,在这种情况下应该使用 from_predictions
而不是 from_estimator
。在以下示例中,我们为拟合的支持向量机绘制了 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 # make binary
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. Display 对象#
|
校准曲线(也称为可靠性图)可视化。 |
|
部分依赖图 (PDP)。 |
|
决策边界可视化。 |
|
混淆矩阵可视化。 |
|
DET 曲线可视化。 |
|
精确率召回率可视化。 |
|
回归模型预测误差可视化。 |
|
ROC 曲线可视化。 |
学习曲线可视化。 |
|
验证曲线可视化。 |