混淆矩阵、auc、roc

混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来。这个表就是混淆矩阵。

 

针对一个二分类问题

真实值是positive,模型认为是positive的数量(True Positive=TP)
真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error)
真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第二类错误(Type II Error)
真实值是negative,模型认为是negative的数量(True Negative=TN)

将这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix):

二级指标

  • 准确率(Accuracy)—— 针对整个模型
  • 精确率(Precision)
  • 灵敏度(Sensitivity):就是召回率(Recall)
  • 特异度(Specificity)

 

三级指标

其中,P代表Precision,R代表Recall。

F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。

 

auc:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。

所以根据定义:我们最直观的有两种计算

AUC的方法

1:绘制ROC曲线,ROC曲线下面的面积就是AUC的值

2:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有m*n个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(m*n)就是AUC的值
 

roc

roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。

横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)

纵轴:真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率)
 

TPR=TP/(TP+FN)

FPR=FP/(FP+TN)

https://blog.csdn.net/qq_15295565/article/details/88650944

https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839

 

### 混淆矩阵ROC曲线的区别、联系及其使用方法 #### 区别 混淆矩阵ROC曲线在机器学习模型评估中有不同的侧重点。 1. **粒度与概述** - 混淆矩阵提供的是逐类细分的模型性能分析,能够帮助识别模型在哪一类上表现不佳[^2]。 - ROC曲线则给出整体概览,展示模型在整个阈值范围内的判别能力,并通过AUC(曲线下面积)量化总体性能。 2. **数据集不平衡的影响** - 对于类别不平衡的数据集,混淆矩阵中的精确率和召回率等指标能更直观反映问题所在。 - 而ROC曲线由于未直接考虑类别比例,在这种情况下可能会显得不够敏感。 3. **适用场景** - 混淆矩阵适用于二分类以及多分类任务,可针对每种类别单独评价其预测效果。 - ROC曲线主要用于二分类情境下研究不同决策边界带来的影响;不过也可以推广至多分类情形。 4. **阈值依赖性** - 混淆矩阵基于单一固定的判定标准来计算各项统计量。 - ROC曲线描绘了随着阈值变化时真阳性率(TPR)相对于假阳性率(FPR)的变化趋势[^3]。 #### 联系 两者均用于衡量分类器的表现质量,且存在一定的关联: - 构建ROC曲线的基础正是来自多个混淆矩阵的结果集合。具体而言,每一个特定阈值对应的TPR和FPR可以从相应的混淆矩阵中提取出来形成该点坐标[^3]。 - AUC作为综合考量整个操作空间效能的重要参数之一,实际上是对一系列离散化后的局部区域求积分得到总覆盖面积的过程,这些局部即是由各个独立测试所得出的不同状态下的混淆表贡献而成。 #### 使用方法 以下是两种工具的具体应用指南: ##### 混淆矩阵 - 计算各类别的真正例(True Positive),假正例(False Positive),真反例(True Negative),假反例(False Negative)[^5]。 - 进一步衍生出准确率(Accuracy),精准度(Precision),召回率(Recall/Sensitivity),特异度(Specificity)等一系列关键绩效指示符(KPIs)[^4]。 ##### ROC曲线 - 设定多种可能性判断界限P∈[0,1],分别记录每次试验产生的实际观测值对{(FP_rate_i , TP_rate_i)}并绘制成图象表示形式。 - 利用数值积分技术估算总面积大小以获得最终评分结果——AUC得分越高表明系统越优秀。 ```python from sklearn.metrics import confusion_matrix, roc_curve, auc import matplotlib.pyplot as plt import numpy as np # Example data generation (replace with your actual dataset) y_true = np.array([0, 0, 1, 1]) y_scores = np.array([0.1, 0.4, 0.35, 0.8]) # Confusion Matrix Calculation at default threshold of 0.5 cm_default_threshold = confusion_matrix(y_true, y_scores >= 0.5) fpr, tpr, thresholds = roc_curve(y_true, y_scores) roc_auc = auc(fpr, tpr) plt.figure() lw = 2 plt.plot(fpr, tpr, color='darkorange', lw=lw, label=f'ROC curve (area = {roc_auc:.2f})') plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--') # Diagonal line representing random guessing. plt.xlim([-0.05, 1.05]) plt.ylim([-0.05, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic Curve') plt.legend(loc="lower right") plt.show() print("Confusion matrix:\n", cm_default_threshold) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值