性能度量就是衡量模型泛化能力的评价标准
在机器学习的预测任务中,可以分为两类:
- 回归(regression):预测的值是连续的,比如某地区的房价预测任务
- 分类(classification):预测的值是离散的,比如猫狗图片的二分类任务,可以用0表示猫,1表示狗
回归任务
回归任务最常用的性能度量是“均方误差”(Mean Square Error, MSE)
设
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi)表示第i个样本,
x
i
x_i
xi是输入的向量(由各个特征值构成),
y
i
y_i
yi是正确的输出值,f表示学习器学得的模型,
f
(
x
i
)
f(x_i)
f(xi)表示该模型的预测值,则整个样例集D的“均方误差”可表示为:
M
S
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
MSE = \frac{1}{m}\sum_{i=1}^{m}(f(x_i) - y_i)^2
MSE=m1i=1∑m(f(xi)−yi)2更一般地,如果各个样本在数据集D中出现的概率p已知,则“均方误差”可表示为:
M
S
E
=
∫
x
∼
D
(
f
(
x
)
−
y
)
2
⋅
p
(
x
)
d
x
MSE = \int_{x\sim D}(f(x) - y)^2 \cdot p(x)dx
MSE=∫x∼D(f(x)−y)2⋅p(x)dx
分类任务
分类任务主要有下面几种性能度量标准:
- 错误率与精度
- 准确率(查准率)与召回率(查全率)
- F1度量
- ROC 与 AUC
错误率与精度
错误率与精度较为简单,设错误率为E,精度为P
E
=
分
类
错
误
的
样
本
数
总
样
本
数
,
P
=
分
类
正
确
的
样
本
数
总
样
本
数
E = \frac{分类错误的样本数}{总样本数}, \ \ P = \frac{分类正确的样本数}{总样本数}
E=总样本数分类错误的样本数, P=总样本数分类正确的样本数显然,P = 1 - E
准确率(查准率)与召回率(查全率)
准确率(precision)也叫查准率,召回率(recall)也叫查全率
对于一个二分类的数据集,其类别标注有且仅有两种可能:正例或反例,对于作用于其上的模型,其输出也有两种可能:正例或反例(可以用0和1来表示),因此可以根据不同的组合得到4种关系:
预测:正例 | 预测:反例 | |
---|---|---|
真实:正例 | TP(真正例) | FN(假反例) |
真实:反例 | FP(假正例) | TN(真反例) |
显然有,TP + FN + FP + TN = 样例总数
准确率定义为:
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
直观理解:准确率表示在所预测的正例中,有多少比例是真的正例;召回率表示所有为正例的样本中,有多少比例被预测了出来
因为准确率和召回率这样不同的特点,它们可以用于不同需求的任务度量;比如我们需要从一批西瓜中预测好瓜和坏瓜,如果我们希望将所有的好瓜都能分离出来,也就是希望召回率尽可能的高,最极端的情况是认为所有的瓜都是好瓜,那么召回率也就是1;而如果我们希望在我们预测的好瓜中,真的是好瓜的比例尽可能高,也就是希望准确率尽可能的高,那么我们可以只挑选一两个我们最确定是好瓜的瓜,这样准确率就会很高
F1度量
一般而言,准确率P与召回率R是难以兼得的(除非对于一些很简单的分类任务),那么我们就希望能够有一个指标能够综合考虑P和R,这样也就出现了F1度量:
F
1
=
2
⋅
P
⋅
R
P
+
R
F1 = \frac{2\cdot P\cdot R}{P + R}
F1=P+R2⋅P⋅R我们可以在得到P和R后,通过计算F1来比较各个模型的优劣
ROC 与 AUC
ROC全称是“受试者工作特征”(Receiver Operating Characteristic),ROC曲线的纵轴是“真正例率”(True Positive Rate, TPR),横轴是“假正例率”(False Positive Rate, FPR),其中,TPR和FPR定义为:
T
P
R
=
T
P
T
P
+
F
N
,
F
P
R
=
F
P
F
P
+
T
N
TPR = \frac{TP}{TP + FN}, \ \ FPR = \frac{FP}{FP + TN}
TPR=TP+FNTP, FPR=FP+TNFP 由此可以作出ROC曲线

该曲线的变化可以理解为:模型对于数据集进行预测后得到一组预测值(假设预测值落在0-1之间,1是正例,0是反例),对这组预测值从大到小排序,某样本的预测值越大,说明模型对于该样本是正例越自信;然后从1开始不断减小正例的阀值(阀值的作用是:若预测值大于它,则被认为是正例;若预测值小于它,则被认为是反例),这样会有越来越多的样本被认为是为正例,因而TPR和FPR会发生改变,在ROC中则可得到多个点,最终也就可以形成一条ROC曲线
AUC(Area Under ROC Curve)指的是ROC曲线与x轴形成的面积,AUC越大,表示模型的可靠性越高