文章目录
机器学习分类问题性能评估指标
机器学习中,对学习器的泛化能力进行评估,需要有衡量模型泛化能力的评价标准,即“性能度量”,不同的性能度量往往会导致不同的评判结果,这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。(引自《机器学习》周志华)
分类任务中最常用的两种性能度量是: accuracy(准确度)
,error rate(错误率)
;它们既适用于二分类任务,也适用于多分类任务。精度是分类正确的样本数占样本总数的比例,错误率是分类错误的样本数占样本总数的比例。
PR曲线
准确度和错误率虽常用,但并不能满足所有任务需求,例如,在信息检索中,我们经常会关心:检索出的信息中有多少比例是用户感兴趣的;用户感兴趣的信息中有多少被检索出来了;这就涉及到 “查准率”
和 “查全率”
这类性能度量。
针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况,对应了四个基本指标。
(1)若一个实例是正类,并且被预测为正类,即为 真正类
(True Postive TP)
(2)若一个实例是正类,但是被预测为负类,即为 假负类
(False Negative FN)
(3)若一个实例是负类,但是被预测为正类,即为 假正类
(False Postive FP)
(4)若一个实例是负类,但是被预测为负类,即为 真负类
(True Negative TN)
分类结果的 混淆矩阵
如下,其中1代表正类,0代表负类
则 查准率
P P P (又称 精度,precision) 和 查全率
R R R(又称 召回率,recall)分别定义为
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
精度是分类器判断为正样本的所有样本里,实际真正为正样本的比例,精度越高则假的正例就越低;召回率是所有实际正样本中被分类器正确判断为正样本的比例。如图所示,两者是一对矛盾的度量。
基于查全率和查准率的调和平均,定义了 F 1 F1 F1度量:
F 1 = 1 2 ∗ ( 1 P + 1 R ) = 2 ∗ T P 2 ∗ T P + F P + F N F1=\frac{1}{2}*(\frac{1}{P}+\frac{1}{R})=\frac{2*TP}{2*TP+FP+FN} F1=21∗(P1+R1)=2∗TP+FP+FN2∗TP
然而,对于precision和recall的重视常常是不同的。例如,在商品推荐时,为了尽少的打扰用户,更希望推荐的内容确实是用户喜欢的,此时查准率更重要;在追查逃犯时,更希望尽少的漏掉逃犯,此时查全率更重要。则有更一般的形式 F β F_\beta Fβ:
F β = ( 1 + β 2 ) r p β 2 ∗ p + r F_\beta=\frac{(1+\beta^2)rp}{\beta^2*p+r} Fβ=