机器学习(三):性能度量

性能度量

对学习器的泛化性能进行评估,不仅要有有效可行的实验估计方法,还要有衡量模型泛化能力的评价标准,这就是性能度量。

以下介绍分类任务中常用性能度量

错误率与精度

在上一篇文章中有提到错误率和精度,以下对其定义:

错误率:

E(f; D) = 机器学习(三):性能度量

精度:

acc(f; D) = 机器学习(三):性能度量 = 1 - E(f; D)

其中 I( . ) 当 . 为真时取 1, 为假时取 0 。

查准率,查全率与 F1

在有些任务中,错误率和精度并不能完全满足需求,例如在信息检索中,我们关心 “检索出的信息有多少比例是用户感兴趣的” 和 “用户感兴趣的信息有多少被检索出来了”。

对于二分问题,将预测结果进行以下划分:

真正例(TP),假正例(FP),真反例(TN),假反例(FN)

显然 TP + FP + TN + FN = 样例总数

机器学习(三):性能度量

定义:

查准率 P = TP / (TP +FP)

查全率 R = TP / (TP + FN)

P 和 R 互为矛盾度量,即一个高时另一个偏低。

比如挑西瓜,想把所有好瓜挑出来时,就把所有瓜都标记为好瓜,想尽可能准确的挑出好瓜时,则要挑最有把握的瓜。

P-R曲线:

最可能是正例的样本排前面,把最不可能是正例的样本排后面,按此顺序把样本作为正例逐个预测,则可以计算出当前的查全率和查准率。再以查全率为和坐标,查准率为纵坐标,可以绘制查准率-查全率曲线,简称 P-R曲线。

机器学习(三):性能度量

如上图,A 完全包住了 C,则学习器 A 优于学习器 C, 而对于A , B 则难以判断,通过引入平衡点(BEP)来度量,它是 P = R 时的取值,BEP高的一般认为较优,所以 A 优于 B。

但是BEP还是过于简化了,接下来引入 F1度量。

F1

定义:

F1 = 2 * P * R / (P + R) = 2 * TP / (样例总数 + TP - TN)

有时候我们对 查全率/查准率 有不同的偏好。

例如追查逃犯我们希望尽可能少漏掉逃犯,而推荐商品时我们希望尽可能精准的进行推荐。

于是引出了 F1 的一般形式:Fβ

定义:

Fβ = (1 + β ^ 2) * P * R / (β ^ 2 * P) + R

其中 β > 0

当 β > 1 时,查全率影响更大, β < 1 时,查准率影响更大,当 β = 1 时,则为 F1。

宏F1和微F1

很多时候我们有很多个混淆矩阵,比如进行了多次训练测试,这是我们希望可以综合考察查准率和查全率。

一种做法是计算每个混淆矩阵的 P 和 R,然后取均值,这样就得到了 宏F1,(macro-F1)

定义:

macro-P = 机器学习(三):性能度量

macro-R = 机器学习(三):性能度量

macro-F1 = 2 * macro-P * macro-R / (macro-P + macro-R)

还可以现将各混淆元素平均再计算,可得出 微F1(micro-F1)

定义下次补上

ROC 与 AUC

待续。

上一篇:(爱吃西瓜)笔记一:模型评估与选择


下一篇:宏的使用