强大的 Scikit-learn 可视化让模型说话
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
显示 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.RocCurveDisplay
和metrics.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()
想要了解更多内容?
点击领取《Python学习手册》,后台回复「福利」获取。『数据STUDIO』专注于数据科学原创文章分享,内容以 Python 为核心语言,涵盖机器学习、数据分析、可视化、MySQL等领域干货知识总结及实战项目。