混淆矩阵与评估指标
概念
混淆矩阵(Confusion Matrix)又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。
基本格式
二分类混淆矩阵:
预测为正 | 预测为反 | |
---|---|---|
真实为正 | √(True Positive) | ❌(False Negative) |
真实为反 | ❌(False Positive) | √(True Negative) |
√:表示正确分类
❌:表示错误分类
- TP :True Positive,真正,即被模型预测为正的正样本
- FN :False Negative,假负,即被预测为负的正样本
- FP :False Positive,假正,即被预测为正的负样本
- TN :True Negative,真负,即被预测为负的负样本
我们希望的是TP和TN越大越好,FN和FP越小越好
评估指标及公式
TP+FN为真实为正例的样本;FP+TN为真实为反例的样本;
TP+TN为预测正确的样本
- Accuracy = = 准确率,模型正确分类样本数占总样本数的比例(所有类别)
- Precision = = 查准率(精确率),预测为正例的数据中有多少是真的正例
- Recall = = 召回率,查全率,敏感性(Sensitivity),,真实为正例的数据中多少被预测出来了
- F1score = = F~1~ score是Precision和Recall的调和平均数,综合反映分类器的Precision和Recall
- Specificity = = 特异性
- ROC曲线,受试者工作特性曲线。横坐标为FPR,纵坐标为TPR。
- FPR== 负正类率 = 1-特异性
- TPR== 真正类率 = 召回率
注:其中准确率是针对所有类别;精确率,召回率,特异度是针对每个类别进行统计。
计算例题
n=100 | 预测为患病 | 预测为健康 |
---|---|---|
患病 | 45 | 5 |
健康 | 15 | 35 |
TP = 45,FN=5,FP=15,TN=35
- Precision = = 0.75 查准率
- Recall = = 0.9 查全率,敏感性,召回率
- F1-score = = 0.82 调和平均数
- Accuracy = x 100%= 80% 准确率
- Specificity = = 0.7 特异性
对于现在正在做的医疗领域相关的项目,我们更希望真实为患病预测为健康的这个值小。
多分类混淆矩阵(Multiclass Classifiers Confusion Matrix)
基本结构与二分类相似。与二分类不同的是,每一类都可以计算查准率和召回率。
例:
预测为猫 | 预测为狗 | 预测为猪 | |
---|---|---|---|
真实为猫 | 15 | 2 | 3 |
真实为狗 | 6 | 12 | 0 |
真实为猪 | 0 | 4 | 22 |
- Accuracy = = 76.56%
- 猫:Precision = = 0.71
Recall = = 0.75
- 狗: Precision = =0.66
Recall = = 0.66
- 猪:Precision = =0.88
Recall = = 0.85
- 平均Precision = = 0.75
平均Recall = = 0.75
- = = = 0.75
多分类的F1score是每一类F1score的平均值
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WShuai's Blog!
评论