【Sklearn-混淆矩阵】一文搞懂分类模型的基础评估指标:混淆矩阵ConfusionMatrixDisplay
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
🌵文章目录🌵
- 🎯 1. 基本介绍
- 💡 2. 公式推导
- 💡 3. 代码实践
- 3.1 导入库和准备数据
- 3.2 训练模型
- 3.3 画出混淆矩阵
- 💡 4. 注意事项
- 💡 5. 总结
下滑查看解决方法
🎯 1. 基本介绍
在机器学习中,评估分类模型的性能是一个重要环节。混淆矩阵(Confusion Matrix)是一个常用的工具,它展示了模型预测结果与实际标签之间的关系。scikit-learn(简称sklearn)提供了ConfusionMatrixDisplay函数,用于以图形化的方式展示混淆矩阵,使得结果更易于理解。
💡 2. 公式推导
混淆矩阵的基本元素包括:
- 真正例(True Positives, TP):正确预测为正类的样本数。
假正例(False Positives, FP):错误预测为正类的样本数。
真负例(True Negatives, TN):正确预测为负类的样本数。
假负例(False Negatives, FN):错误预测为负类的样本数。
混淆矩阵可以表示为:
此外,混淆矩阵还可以用于计算其他性能指标,如准确率、召回率、精确率和F1分数。
💡 3. 代码实践
3.1 导入库和准备数据
为了更加理解整个函数的处理流程,我们定义数据并对其进行实践,具体如下所示:
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay# 加载鸢尾花数据集
iris = load_iris()
X, y = iris.data, iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
3.2 训练模型
具体的优化代码如下所示:
# 创建随机森林分类器实例并训练
clf = RandomForestClassifier(random_state=42)
clf.fit(X_train, y_train)# 在测试集上进行预测
y_pred = clf.predict(X_test)
3.3 画出混淆矩阵
# 计算混淆矩阵
cm = confusion_matrix(y_test, y_pred)# 使用ConfusionMatrixDisplay展示混淆矩阵
disp = ConfusionMatrixDisplay(confusion_matrix=cm)
disp.plot()
plt.title('Confusion Matrix')
plt.show()
💡 4. 注意事项
- ConfusionMatrixDisplay函数需要一个混淆矩阵作为输入。
- 通过cmap参数可以指定颜色映射,matplotlib提供了多种颜色映射方案。
- 混淆矩阵图提供了模型性能的直观表示,但可能不适用于类别非常多的情况。
💡 5. 总结
ConfusionMatrixDisplay函数是sklearn中一个非常有用的工具,它以图形化的方式展示混淆矩阵,帮助我们快速了解分类模型的性能。通过本博客的代码示例,我们学习了如何使用这个函数绘制混淆矩阵图,并分析了模型的分类效果。希望这篇博客能够帮助你更好地利用混淆矩阵图进行模型评估。