当前课程知识点:数据挖掘 > 第7章 分类 > 7.6 分类模型的评估 > 7.6 分类模型的评估(上)
训练分类模型后
如何评价模型的好坏是一个很关键的问题
目前评价分类模型好坏常用的指标有
准确率 召回率 灵敏度
特效性和F值等
首先介绍几个常见的模型评价术语
考虑二分类问题
即分类目标只有两类
正类即感兴趣的主要类和负类即其他类
正例即为正类的实例或元组
负例即为负类的实例或元组
利用混淆矩阵来介绍相关模型评价数据
假设在有类标号的
测试数据集上使用分类器
分类结果通过混淆矩阵表示
如表所示
① 真正例(TP)
被正确地划分为正类的实例数
即实际为正例
且被分类器划分为正例的实例数
② 假正例(FP)
是指被错误地划分为正类的实例数
即实际为负例
但被分类器划分为正例的实例数
③ 假负例(FN)
是指被错误地划分为负类的实例数
即实际为正例
但被分类器划分为负例的实例数
④ 真负例(TN)
是指被正确地划分为负类的实例数
即实际为负例
且被分类器划分为负例的实例数
混淆矩阵是分析分类器识别
不同类元组的一种有用工具
混淆矩阵的行代表测试样本的真实类别
而列代表分类器所预测出的类别
P为测试数据中正类的实例数
(TP+FN)
N为测试数据中负类的实例数
(FP+TN)
P′为分类器标记为正类的实例数
(TP+FP)
N′为分类器标记为负类的实例数
(FN+TN)
实例总数为TP+TN+FP+FN
或P+N
或P′+N′
TP和TN表明分类器分类正确的情况
而FP和FN表明分类器分类错误的情况
1 准确率
又称为分类器的总体识别率
准确率表示分类器
对各类元组的正确识别情况
它定义为被正确分类的元组数
占预测总元组数的百分比
计算公式如下所示
accuracy=
(TP+TN)/(P+N)
2 错误率
又称为误分辨率
错误率表示分类器
对各类元组的错误识别情况
是1-accuracy
具体计算公式如下所示
error rate=
(FP+FN)/(P+N)
3 特效性
又称为真负例识别率(TNR)
特效性表示分类器
对负元组的正确识别情况
它定义为正确识别的负元组数量
占实际为负元组总数的百分比
计算公式如下所示
specificity=TN/N
4 灵敏度
灵敏度也被称为真正例识别率(TPR
即正确识别的正元组的百分比
衡量了分类器对正类的识别能力
具体计算公式如下
sensitivity=TP/P
5 精度
精度可以看做精确性的度量
即正确识别的正元组数量
占预测为正元组总数的百分比
具体计算公式如下所示
precision=
TP/(TP+FP)
=TP/P′
6 召回率
召回率用来评价模型的灵敏度和识别率
是完全性的度量
即正元组被标记为正类的百分比
即为灵敏度(或真正例率)
具体计算公式如下所示
recall=
TP/(TP+FN)
=TP/P
7 综合评价指标(F度量)
将精度和召回率组合到一个度量中
即为F度量
(又称为F1分数或F分数)
和Fβ度量的方法
具体计算公式如下所示
F=(2×precision×recall)
/(precision+recall)
Fˇβ=(1+β^2)×precision×recall
/(β^2×precision+recall)
其中
β是非负实数
F度量是精度和召回率的均值
它赋予精度和召回率相等的权重
Fβ度量是精度和召回率加权度量
它赋予召回率权重是赋予精度的β倍
通常使用的Fβ是F2
(它赋予召回率权重是精度的2倍)
和F0.5
(它赋予精度的权重
是召回率的0.5倍)
8 假负例识别率
假负例识别率(FNR)
它定义为错误识别为负类的正元组数量
占实际为正元组总数的百分比
具体计算公式如下所示
FNR=
FN/(TP+FN)
=FN/P
9 假正例识别率
假正例识别率(FPR)
它定义为错误识别为正类的负元组数量
占实际为负元组总数的百分比
具体计算公式如下所示
FPR=
FP/(FP+TN)
=FP/N
例 分类模型评价指标的计算
混淆矩阵如表所示
计算准确率 错误率 特效性等评价指标
解
① 计算准确率
accuracy=
(150+250)/500×100%
=80%
② 计算错误率
errorrate=
1-accuracy=20%
③ 计算特效性
specificity=
250/310×100%
≈80.65%
④ 计算灵敏度
sensitivity=
150/190×100%
=78.94%
⑤ 计算精度
precision=
150/(150+60)
=150/210×100%
=71.42%
⑥ 计算召回率
recall=
150/(150+40)
=150/190×100%
=78.94%
⑦ 计算F度量
F=
(2×71.42%×78.94%)
/(71.42%+78.94%)
=0.8823
⑧ 计算假负例识别率
FNR=
40/(150+40)
=40/190×100%
=21.05%
⑨ 计算假正例识别率
FPR=
60/(250+60)
=60/310×100%
=19.35%
(1)ROC曲线相关概念
ROC曲线是指接收者操作特征曲线
是反映灵敏度
和特效性连续变量的综合指标
是用构图法揭示灵敏度
和特效性的相互关系
它通过将连续变量
设定出多个不同的临界值
从而计算出一系列灵敏度和特效性
再以灵敏度
即真正例识别率TPR为纵坐标
以假正例识别率FPR即
(1-特效性)为横坐标绘制成曲线
曲线下面积AUC越大
诊断准确性越高
在ROC曲线上
最靠近坐标图左上方的点
为灵敏度和特效性均较高的临界值
ROC曲线和AUC
常被用来评价一个二值分类器的优劣
在如图所示的ROC曲线图中
实线为ROC曲线
线上每个点对应一个阈值
横轴为假正例识别率FPR
即1-TNR(真负例识别率)
或1-Specificity
FPR越大
预测为正类的元组中实际为负类元组越多
纵轴为真正例识别率TPR
即Sensitivity(正类覆盖率)
TPR越大
预测正类的元组中实际为正类元组越多
ROC曲线图中的四点一线
①(0,1)
即FPR=0
TPR=1
此时假负类率为0
假正类率为0
表示该分类器正确分类了所有样本
②(1,0)
即FPR=1
TPR=0
此时真负类率为0
真正类率为0
表示该分类器避开了所有的正确答案
③(0,0)
即FPR=0
TPR=0
此时假负类率为0
真正类率为0
表示该分类器将所有样本划分为负类
④(1,1)
即FPR=1
TPR=1
此时真负类率为0
假正类率为0
表示该分类器将所有样本划分为正类
⑤虚线y=x
该线上的点表示
一个采用随机猜测策略的分类器结果
表示该分类器
随机对于一半样本划分为正类
另一半为负类
理想情况是TPR=1
FPR=0
即图中(0,1)点
因此ROC曲线越靠拢(0,1)点
越偏离45度对角线越好
Sensitivity和Specificity
越大效果越好
该分类器的性能越好
(2)ROC曲线的绘制
对于二分类器
给出针对每个实例为正类的概率
设定一个阈值
概率大于等于这个阈值的为正类
小于阈值的为负类
对应的
就可以算出一组(FPR,TPR)
在平面中得到对应坐标点
随着阈值的逐渐减小
越来越多的实例被划分为正类
但是这些正类中
同样也掺杂着真正的负实例
即TPR和FPR会同时增大
阈值最大时
对应坐标点为(0,0)
阈值最小时
对应坐标点(1,1)
对于一个特定的分类器和测试数据集
只能得到一个分类结果
即一组FPR和TPR结果
而要得到一条曲线
需要一系列FPR和TPR的值
假设已经得到了所有样本的概率输出
即属于正类的概率
根据每个测试样本属于正类的概率值
从大到小排序
此表有20个测试样本
“实际分类”一列
表示每个测试样本真正的类标签
有10个正例
10个负例
即P=10
N=10
“概率”一列表示
每个测试样本属于正例的概率
样本已按“概率”降序排序
从高到低
依次将“概率”值作为阈值
当测试样本属于正例的概率
大于或等于这个阈值时
认为它为正例
否则为负例
从样本1开始
其为正例的概率为0.9
即阈值为0.9
则分类器将样本1分类为正例
其他19个样本分类为负例
样本1实际分类为正类
则TP=1
FP=0
其余19个被分类器
分类为负例的样本中实际为正类的有9个
实际为负类的有10个
则TN=10
FN=9
因此TPR=0.1
FPR=0
对于样本2
其为正例的概率为0.8
即阈值为0.8
则分类器将样本1和样本2分类为正例
其他18个样本分类为负例
样本1和样本2实际分类为正类
则TP=2
FP=0
其余18个被分类器分类为负例的样本中
实际为正类的有8个
实际为负类的有10个
则TN=10
FN=8
因此TPR=0.2
FPR=0
对于样本3
其为正例的概率为0.6
即阈值为0.6
则分类器将样本1 样本2
和样本3分类为正例
其他17个样本分类为负例
样本1和样本2实际分类为正类
样本3实际分类为负类
则TP=2
FP=1
其余17个被分类器分类为负例的样本中
实际为正类的有8个
实际为负类的有9个
则TN=9
FN=8
因此TPR=0.2
FPR=0.1
依次处理所有样本
得到一组FPR和TPR
即ROC曲线上的点
根据FPR和TPR绘制的ROC曲线
如图所示
当阈值取值越多
ROC曲线越平滑
阈值设置为1和0时
分别得到ROC曲线上的
(0,0)和(1,1)两个点
AUC被定义为ROC曲线下的面积
这个面积的数值不会大于1
又由于ROC曲线
一般都处于y=x这条直线的上方
所以AUC的取值范围在0.5和1之间
AUC值是一个概率值
当随机挑选一个正样本以及一个负样本
当前的分类算法
根据计算得到的Score值
将这个正样本排在负样本前面的概率
就是AUC值
当然
AUC值越大
当前的分类算法
越有可能将正样本排在负样本前面
即能够更好的分类
AUC = 1
是完美分类器
采用这个预测模型时
不管设定什么阈值都能得出完美预测
绝大多数预测的场合
不存在完美分类器
0.5 < AUC < 1
优于随机猜测
这个分类器(模型)妥善设定阈值的话
能有预测价值
AUC = 0.5
跟随机猜测一样(例 丢铜板)
模型没有预测价值
AUC < 0.5
比随机猜测还差
但只要总是反预测而行
就优于随机猜测
-1.1 数据分析与数据挖掘
-1.2 分析与挖掘的数据类型
-1.3 数据分析与数据挖掘的方法
-1.4 数据分析与数据挖掘使用的技术
-1.5 应用场景及存在的问题
-第1章 作业1
-第1章 作业2
-2.1 数据的属性
-- 2.1 数据的属性
-2.2 数据的基本统计描述
-2.3 数据的相似性和相异性
-第2章 作业1
-第2章 作业2
-3.1 数据存在的问题
--数据存在的问题
-3.2 数据清理
--3.2 数据清理
--数据清理
-3.3 数据集成
--3.3 数据集成
--数据集成
-3.4 数据归约
--3.4 数据规约
--数据归约
-3.5 数据变换与数据离散化
-第3章 作业1
-第3章 作业2
-4.1 数据仓库基本概念
--数据仓库基本概念
-4.2 数据仓库设计
--数据仓库设计
-4.3 数据仓库实现
--数据仓库实现
-4.4 联机分析处理
--联机分析处理
-4.5 元数据模型
--元数据模型
-第4章 作业1
-第4章 作业2
-5.1 回归分析的基本概念
-5.2 一元线性回归
--一元线性回归
-5.3 多元线性回归
--多元线性回归
-5.4 多项式回归
--多项式回归
-第5章 作业1
-第5章 作业2
-6.1 概述
--频繁模式概述
-6.2 Apriori算法
-6.3 FP-growth算法
-6.4 压缩频繁项集
--压缩频繁项集
-6.5 关联模式评估
--关联模式评估
-第6章 作业1
-第6章 作业2
-7.1 分类概述
--7.1 分类概述
--分类概述
-7.2 决策树
--决策树
-7.3 朴素贝叶斯分类
--朴素贝叶斯分类
-7.4 惰性学习法
-7.5 神经网络
--神经网络
-7.6 分类模型的评估
--分类模型的评估
-第7章 第一部分作业2(研究生班级)
-第7章 第二部分作业2
-第7章 第二部分作业1
-8.1 聚类概述
--8.1 聚类概述
--聚类概述
-8.2 基于划分的聚类
--基于划分的聚类
-8.3 基于层次的聚类
--基于层次的聚类
-8.4 基于密度的聚类
--基于密度的聚类
-8.5 基于网格的聚类
--基于网格的聚类
-第8章 作业1
-第8章 作业2
-9.1 离群点定义与类型
-9.2 离群点检测
--离群点检测
-第9章 作业1
-第9章 作业2