Sklearn 机器学习 数值指标 混淆矩阵confusion matrix

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖

在这里插入图片描述

本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】


在这里插入图片描述

Sklearn 机器学习中的混淆矩阵与数值指标详解

在机器学习的分类任务中,仅仅依赖准确率(Accuracy)往往无法全面评估模型性能。特别是在类别不平衡的数据集中,一个高准确率的模型可能只是“看起来有效”。这时,我们需要更细粒度的评估方式,比如混淆矩阵(Confusion Matrix)及其衍生的精确率(Precision)、**召回率(Recall)F1 值(F1 Score)**等指标。

本篇将带你深入理解 Sklearn 中的混淆矩阵及其常用性能指标,配合清晰代码和图示,帮你建立全面分类模型评估的思维。


📘 一、什么是混淆矩阵(Confusion Matrix)

混淆矩阵是用于可视化分类模型性能的矩阵工具,通过对比模型预测值和真实标签之间的关系,展示分类结果的具体情况。

二分类混淆矩阵结构:

实际 \ 预测 预测为正类(Positive) 预测为负类(Negative)
实际为正类 TP(True Positive) FN(False Negative)
实际为负类 FP(False Positive) TN(True Negative)

术语说明(含通俗解释):

  • TP(真正):模型正确预测为正类的数量。
  • TN(真负):模型正确预测为负类的数量。
  • FP(假正):模型将负类误判为正类,例如将健康人误诊为病人。
  • FN(假负):模型将正类误判为负类,例如将病人漏诊为健康人。

🧮 二、Sklearn 中混淆矩阵的使用方法

Sklearn 提供了 confusion_matrix 函数,用于快速生成混淆矩阵。

示例代码:

from sklearn.metrics import confusion_matrix

y_true = [1, 0, 1, 1, 0, 1, 0
### 关于混淆矩阵的概念 混淆矩阵是一种用于评估分类模型性能的工具,它能够清晰展示模型在不同类别上的预测准确性。对于二分类问题,混淆矩阵通常由四个核心部分组成:真正类 (True Positive, TP),假正类 (False Positive, FP),真负类 (True Negative, TN),以及假负类 (False Negative, FN)[^3]。 当扩展到多分类场景时,混淆矩阵则表现为 \( n \times n \) 的表格形式(其中 \( n \) 表示类别数量)。在这个表格中,每一行代表真实的类别分布,而每一列对应的是模型预测的结果。对角线上的数值反映了各个类别被正确预测的数量;而非对角线上的值,则显示了各类别之间的误判情况[^1]。 ### 如何计算混淆矩阵 为了构建混淆矩阵,首先需要对比测试集中每个样本的真实标签与其对应的预测标签。具体操作如下: - 对于每一个样本,如果其真实标签与预测标签一致,则计入相应的对角元格; - 如果不一致,则记录在哪一列上发生了错误分配。 这种统计方式使得我们可以直观地看到哪些类型的误差更频繁发生,并据此改进我们的模型设计或特征工程策略。 ### 混淆矩阵的应用实例 利用混淆矩阵不仅可以简单查看分类器的表现好坏,还可以进一步衍生出多种重要的评价指标,比如精确度(Precision)、召回率(Recall)、F1分数(F1-Score)等。这些高级指标有助于全面理解模型的优势和局限所在。 另外,在实际应用过程中,通过观察学习曲线的变化趋势也可以辅助判断是否存在过拟合现象并及时作出相应调整措施[^2]。 综上所述,无论是作为基础分析手段还是与其他技术相结合使用,混淆矩阵都在机器学习领域扮演着不可或缺的角色之一[^4]。 ```python from sklearn.metrics import confusion_matrix import numpy as np # 假设 y_true 是真实标签数组,y_pred 是预测结果数组 y_true = [2, 0, 2, 2, 0, 1] y_pred = [0, 0, 2, 2, 0, 2] cm = confusion_matrix(y_true, y_pred) print(cm) # 输出将是形如 [[a b], [c d]] 这样的二维数组, # a,b,c,d分别表示TP,FN,FP,TN 或者其他组合取决于具体的实现细节。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas Kant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值