扫码阅读
手机扫码阅读

强大的 Scikit-learn 可视化让模型说话

89 2024-10-16

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:强大的 Scikit-learn 可视化让模型说话
文章来源:
数据STUDIO
扫码关注公众号

显示 API 简介

Scikit-learn (sklearn) 工具库提供了一个功能,utils.discovery.all_displays,用于发现和查看可用的显示API。通过该功能,用户可以轻松查看当前Scikit-learn版本中包含的所有“Display” API类。示例如下:

from sklearn.utils.discovery import all_displays
displays = all_displays()

在Scikit-learn 1.4.0版本中,包括但不限于如下类:CalibrationDisplay, ConfusionMatrixDisplay, DecisionBoundaryDisplay, 等等。

显示决策边界

通过inspection.DecisionBoundaryDisplay可以简化绘制决策边界的过程,无需繁琐地使用Matplotlib的多个步骤。使用该API可以直接通过一个方法调用生成决策边界图:

from sklearn.inspection import DecisionBoundaryDisplay
# ... (省略了数据加载和模型训练的代码)
DecisionBoundaryDisplay.from_estimator(svc_clf, X, grid_resolution=1000, xlabel="Petal length (cm)", ylabel="Petal width (cm)")
plt.show()

需要注意的是,这个API只适用于二维数据集。

概率校准

使用calibration.CalibrationDisplay可以生成概率校准曲线,展现模型预测的可信度。该功能要求模型具有predict_proba方法:

from sklearn.calibration import CalibrationDisplay
# ... (省略了数据加载和模型训练的代码)
CalibrationDisplay.from_estimator(proba_clf, X_test, y_test)
plt.show()

显示混淆矩阵

混淆矩阵是分类模型评估的重要工具,metrics.ConfusionMatrixDisplay可以可视化混淆矩阵,帮助理解模型的精确度和召回率:

from sklearn.metrics import ConfusionMatrixDisplay
# ... (省略了数据加载和模型训练的代码)
ConfusionMatrixDisplay.from_estimator(rf_clf, X, y)
plt.show()

Roc 和 Det 曲线

为了并列评估Roc和Det曲线,可以使用metrics.RocCurveDisplaymetrics.DetCurveDisplay。Roc曲线比较模型的真正率和假正率,而Det曲线提供了一个不同的视角,使用假负率和假正率,两者共同帮助评估模型性能:

from sklearn.metrics import RocCurveDisplay, DetCurveDisplay
# ... (省略了数据加载和模型训练的代码)
RocCurveDisplay.from_estimator(clf, X_test, y_test, ax=ax_roc, name=name)
DetCurveDisplay.from_estimator(clf, X_test, y_test, ax=ax_det, name=name)
plt.show()

调整阈值

使用metrics.PrecisionRecallDisplay可以根据不同的需求(如高精确度或高召回率)调整分类阈值。该工具可以通过可视化的方式帮助决定阈值的最佳设置:

from sklearn.metrics import PrecisionRecallDisplay
# ... (省略了数据加载和模型训练的代码)
PrecisionRecallDisplay.from_estimator(clf, X_test, y_test)
plt.show()
以上HTML内容概括了文章的主要内容,其中包括Scikit-learn的显示API介绍、决策边界的展示、概率校准、混淆矩阵、Roc和Det曲线的对比以及如何通过调整阈值来改善模型的精确度和召回率。每段内容都包含了使用Scikit-learn进行操作的代码示例,并且通过格式化的HTML展现,使得内容结构清晰、便于阅读。

想要了解更多内容?

查看原文:强大的 Scikit-learn 可视化让模型说话
文章来源:
数据STUDIO
扫码关注公众号