评价一个机器学习模型的好坏需要特定的评估方法,并据此对模型进行选择,从而得到一个更好的模型。本文主要是关于模型评估与模型选择的笔记,以及利用 scikit-learn
对 Logistic
回归进行的结果进行交叉检验。
1.训练误差,测试误差与泛化误差
学习器(模型)在训练集上表现出来的误差称为 训练误差(training error) 或 经验误差(empirical error) ,这种误差可以通过损失函数进行描述:
其中 L(⋅) L ( ⋅ ) 为损失函数, f f 为模型, 为训练样本容量。很多机器学习算法的训练过程就是试图最小化这一训练误差。但是最小化训练误差并不一定就是一个好的模型,它有可能只是将训练样本中所有的特征都非常好地挖掘出来进行学习,但这些训练样本的某些特征有可能是具有特异性的,并不能推广到所有样本中,这就会导致模型的 过拟合(overfitting)。模型在新数据集合上表现出来的误差,称为 泛化误差(generalization error)。通常会通过实验测试来对模型的泛化误差进行评估,这时需要引入一些新的测试数据对模型进行检验,在测试数据上表现出来的误差称为 测试误差(testing error)。测试误差为:
其中 I(⋅) I ( ⋅ ) 为指标函数(indicator function),当 ⋅ ⋅ 为真是返回 1 1 ,否则返回 ; N′ N ′ 为测试样本容量,测试准确率(或称为精度(accuracy)):
2.过拟合与欠拟合
训练误差很小而泛化误差很大时称为过拟合,与之相对的是欠拟合(underfitting)。例如多项式拟合:
当选取 M M 个参数进行训练时,可能出现下列情况:
当 和 M=1 M = 1 时,模型为直线,拟合效果很差,即欠拟合;当 M=9 M = 9 时,模型曲线经过了每一个训练数据点,训练误差为 0,但是无法预测新的数据,因此泛化误差很大,即过拟合。
3. 测试误差的评估方法
留出法(hold-out)
交叉验证法(cross validation)
自助法(bootstrapping)
调参(parameter tuning)
3.1 留出法
将数据集 D D 划分为 :
D=S∩T,S∪T=∅
D
=
S
∩
T
,
S
∪
T
=
∅
并采用分层采样(stratified sampling),通常选用
2/3−4/5
2
/
3
−
4
/
5
用于训练。
3.2 交叉验证法
将 D D 划分为 个大小相似的互斥子集:
每次用 k−1 k − 1 个子集作为训练集,剩下一个作为测试集,称为 k折交叉验证(k-fold cross validation)。 k k 通常取 10,并随机使用不同划分重复 次,最终取 p p 次结果均值,例如“10次10折交叉验证”。
假设数据集 容量为 m m ,若 ,则称为 留一法(Leave-One-Out, LOO)。留一法苹果结果比较准确,但计算开销也相应较大。
3.3 自助法
以自助采样法(bootstrap sampling)为基础,从 D D 中有放回地随机抽取 次,得到同样包含 m m 个样本的 , D D 中有一部分样本会在 中出现多次,而另一部分则未出现, m m 次重采样始终未被采到的概率是:
即
36.8%
36.8
%
的样本未出现在
D′
D
′
。以
D′
D
′
作为训练集,
D−D′
D
−
D
′
作为测试集。自助法在数据集较小、难以划分训练/测试集时很有用。
4. 性能度量
除了精度( acctest a c c t e s t )和错误率( etest e t e s t ),还需要反映任务需求的性能度量指标。
查准率、查全率与
F1
F
1
ROC & AUC
代价矩阵
4.1 查准率、查全率与 F1 F 1
查准率(准确率,precision):
查全率(召回率,recall):
希望查全率高,意味着更看重决策的准确性,例如在商品推荐系统,尽量减少错误推荐;希望查全率高,意味着“宁可错杀一千”,例如在罪犯检测过程中。
当 β=1 β = 1 时, Fβ=F1 F β = F 1 ; β>1 β > 1 时,查全率影响更大; β<1 β < 1 时,查准率影响更大。
4.2 信号检测论
在实验心理学信号检测论中,TPR 是 击中(Hit)的概率,FPR 是 虚惊(False alarm)的概率。ROC(Receiver Operating Characteristic Curve)称为接受者操作特性曲线(又称感受性曲线)。曲线上各点反应相同的感受性,只是在不同的判定标准下所得的结果。以虚惊概率(FPR)为横轴,击中概率(TPR)为纵轴组成的坐标图和被试(学习模型)在相同刺激条件下采用不同判断标准得出不同结果画出的曲线。
曲线下区域的面积(Area Under ROC Curve, AUC)代表不同被试(模型)对刺激的辨别能力,AUC 越大,意味着辨别能力越强。
4.3 代价矩阵
暂略。
5. 统计检验
暂略。