混淆矩阵和ROC的个人理解
以下都是个人得到的认识,不一定正确!
混淆矩阵
肯定类别 | 否定类别 | |
---|---|---|
阳性判断 | 真阳性(TP) | 假阳性(FP) |
阴性判断 | 假阴性(FN) | 真阴性(TN) |
这是我自己对上面混淆矩阵的理解:
-
真阳性:
真:表示我预测的结果是阳性的,而实际结果也是阳性的,所以我预测对了,从而为真。
阳性 : 表示我预测的结果为阳性。
从而简称为真阳性
-
假阳性:
假:表示我预测的结果是阳性的,而实际结果是阴性的,所以我预测错了,从而为假。
阳性:表示我预测的结果为阳性。
从而简称为假阳性。
准确率(accuracy):
positive class的精确率(查准率)
positive class的召回率(recall),也成为查全率
ROC曲线和AUC值:
AUC : area under curve
ROC曲线的纵坐标的计算公式为:
ROC曲线的横坐标的计算公式为:
关于ROC曲线的理解:
在处理分类问题时,根据不同的分类阈值(如阈值为0.4,大于0.4的为坏样本,大于0.4为好样本),我们可以得到多个TPR和TPR值,由每一个阈值构成的点(FPR,TPR),可以绘一条曲线,该条曲线就是ROC曲线。
或者说:
关于ROC图像的理解:一般ROC曲线的是一个二分类模型画出来的曲线。ROC的横坐标为FPR值,纵坐标为TPR值,其中图像的每一条ROC曲线对应一个模型。ROC曲线上的每一个点,是由(FPR,TPR)组成,在模型的不同阈值[0,1]下,就可以得到多个(FPR,TPR)组成的点,从而就得到了一条曲线,这个就是ROC曲线。
此时我们来观测极端情况下的(FPR,TPR)构成的点:
1.(0,0):fpr=tpr=0 ,即所有样本都被预测为负样本;(理解可参考FPR和TPR的计算公式)
FPR(预测错误的查全率) : 因为 FPR = FP / (FP + TN) ,而FPR = 0,那么就是FP为0 ,就是说预测为假阳性的样本的个数为0个。
TPR(预测正确的查全率) : 因为 TPR = TP / (TP + FN),而TPR = 0,那么就是TP=0,就是说预测为真阳性的样本个数为0。
既然预测为假阳性的样本个数为0,预测为真阳性的样本个数为0,即模型预测为阳性的个数为0,即模型预测结果全为负的。
如图说明:
肯定类别 | 否定类别 | 说明 | |
---|---|---|---|
阳性判断 | 真阳性(TP)样本个数=0 | 假阳性(FP)样本个数=0 | 预测为正样本的样本数为0 |
阴性判断 | 假阴性(FN)样本个数 | 真阴性(TN)样本个数 | 预测为负样本的样本数为整体样本 |
2.(1,1):fp=tp=1,所有样本都被预测为正样本;(理解可参考FPR和TPR的计算公式)
FPR(预测错误的查全率) : 因为 FPR = FP / (FP + TN) ,而FPR = 1,那么就是TN=0 ,这表示预测为真阴性的样本个数为0。
TPR(预测正确的查全率) : 因为 TPR = TP / (TP + FN),而TPR = 1,那么就是FN=0,这表示预测为假阴性的样本个数为0。
既然预测为假阳性的样本个数为0,预测为真阳性的样本个数为0,即模型预测为阳性的个数为0,即模型预测结果全为负的。
如下表格所示
肯定类别 | 否定类别 | 说明 | |
---|---|---|---|
阳性判断 | 真阳性(TP)样本个数 | 假阳性(FP)样本个数 | 预测为正样本的样本数为整体样本 |
阴性判断 | 假阴性(FN)样本个数=0 | 真阴性(TN)样本个数=0 | 预测为负样本的样本数为0 |
3.(1,0):fp=1,tp=0,所有正例都被预测为负例,而所有正例都没被预测出来,这时最糟糕的分类器,因为它成功的避开了所有正确答案。
如下表格所示
肯定类别 | 否定类别 | 说明 | |
---|---|---|---|
阳性判断 | 真阳性(TP)样本个数=0 | 假阳性(FP)样本个数 | 所有正样本都被预测错误 |
阴性判断 | 假阴性(FN)样本个数 | 真阴性(TN)样本个数=0 | 所有负样本都被预测错误 |
如下表格所示
4.(0,1):fp=0,tp=1,这是一个完美的分类器,它将所有样本都正确分类。
如下表格所示
肯定类别 | 否定类别 | 说明 | |
---|---|---|---|
阳性判断 | 真阳性(TP)样本个数 | 假阳性(FP)样本个数=0 | 所有正样本都被预测正确 |
阴性判断 | 假阴性(FN)样本个数=0 | 真阴性(TN)样本个数 | 所有负样本都被预测正确 |
那么,从这四个极端值可以看出,当ROC曲线越靠近(0,1)点时,预测效果越好。同时曲线和对角线的面积也会越大,这个面积就是AUC。
ROC理解的参考:https://blog.****.net/yinyu19950811/article/details/81288287