sklearn基础--『分类模型评估』之评估报告

分类模型 评估时,scikit-learn提供了混淆矩阵分类报告 是两个非常实用且常用的工具。

它们为我们提供了详细的信息,帮助我们了解模型的优缺点,从而进一步优化模型。

这两个工具之所以单独出来介绍,是因为它们的输出内容特别适合用在模型的评估报告中。

1. 混淆矩阵

混淆矩阵Confusion Matrix)用于直观地展示模型预测结果与实际标签之间的对应关系。

它是一个表格,其 表示实际的类别标签,而表示模型预测的类别标签。

通过混淆矩阵,可以清晰地看到模型的哪些预测是正确的,哪些是错误的,以及错误预测的具体分布情况。

1.1. 使用示例

下面用手写数字识别 的示例,演示最后如何用混淆矩阵 来可视化的评估模型训练结果的。

首先,读取手写数字数据集(这个数据集是scikit-learn中自带的):

python 复制代码
import matplotlib.pyplot as plt
from sklearn import datasets

# 加载手写数据集
data = datasets.load_digits()

_, axes = plt.subplots(nrows=2, ncols=4, figsize=(10, 6))
for ax, image, label in zip(np.append(axes[0], axes[1]), data.images, data.target):
    ax.set_axis_off()
    ax.imshow(image, cmap=plt.cm.gray_r, interpolation="nearest")
    ax.set_title("目标值: {}".format(label))

然后,用支持向量机来训练数据,得到一个分类模型(reg):

python 复制代码
from sklearn.svm import SVC

n_samples = len(data.images)
X = data.images.reshape((n_samples, -1))
y = data.target

# 定义
reg = SVC()

# 训练模型
reg.fit(X, y)

最后,用得到的分类模型 来预测数据,再用混淆矩阵 来分析预测值真实值

python 复制代码
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

# 用训练好的模型进行预测
y_pred = reg.predict(X)

cm = confusion_matrix(y, y_pred)
g = ConfusionMatrixDisplay(confusion_matrix=cm)
g.plot()

plt.show()


混淆矩阵 中,横轴 是预测值,纵轴 是真实值。

对角线上预测值与真实值符合的情况,可以看出模型分类效果不错,大部分数据都能正确分类的。

也有极个别分类错误的情况,比如:

  • 8被识别成1的错误有2个
  • 5被识别成9的错误有1个
  • 9被识别成3的错误有1个
  • ... ... 等等

2. 分类报告

分类报告 提供了模型在各个类别上的详细性能指标。

通常包括准确率Precision)、召回率Recall)、F1分数F1-Score)等评估指标,这些指标能够帮助我们更全面地了解模型的性能。

2.1. 使用示例

基于上面训练的手写数字识别模型,看看模型的各项指标。

python 复制代码
from sklearn.metrics import classification_report

# 这里的y 和 y_pred 是上一节示例中的值
report = classification_report(y, y_pred)
print(report)

报告中列出了手写数字0~9的识别情况。

3. 总结

总的来说,分类报告混淆矩阵 一起使用,能够更全面地评估模型的性能,指导模型的优化和改进。

而且它们生成的评估表格和图形,也能够应用于我们的分析报告中。

关于分类模型的内容可参考之前的文章:

  1. sklearn基础--『监督学习』之K-近邻分类
  2. sklearn基础--『监督学习』之逻辑回归分类
  3. sklearn基础--『监督学习』之贝叶斯分类
  4. sklearn基础--『监督学习』之决策树分类
  5. sklearn基础--『监督学习』之随机森林分类
  6. sklearn基础--『监督学习』之支持向量机分类
相关推荐
青椒大仙KI111 小时前
24/11/14 算法笔记<强化学习> 马尔可夫
人工智能·笔记·机器学习
TaoYuan__2 小时前
机器学习【激活函数】
人工智能·机器学习
TaoYuan__2 小时前
机器学习的常用算法
人工智能·算法·机器学习
正义的彬彬侠2 小时前
协方差矩阵及其计算方法
人工智能·机器学习·协方差·协方差矩阵
十七算法实验室3 小时前
Matlab实现麻雀优化算法优化随机森林算法模型 (SSA-RF)(附源码)
算法·决策树·随机森林·机器学习·支持向量机·matlab·启发式算法
ai产品老杨3 小时前
部署神经网络时计算图的优化方法
人工智能·深度学习·神经网络·安全·机器学习·开源
workflower4 小时前
AI+自动驾驶
人工智能·机器学习·自动驾驶
谢眠5 小时前
机器学习day4-朴素贝叶斯分类和决策树
人工智能·机器学习
IT古董5 小时前
【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)
人工智能·python·线性代数·机器学习
baijin_cha5 小时前
机器学习基础04_朴素贝叶斯分类&决策树分类
笔记·决策树·机器学习·分类