文档链接:
1 模型评估与选择
1.1 经验误差
1.2.1 精确度&错误率
Acc = 1-a/m
Error=a/m
1.2.2 泛化误差
泛化误差就是学习到的模型的期望风险。比较泛化上界的大小,判断模型好坏。
--期望风险
经验风险是L(Y,f())的求和平均
1.2.3 欠拟合和过拟合
欠拟合:增加训练次数。
过拟合:无法彻底解决,只能缓解。
1.2.4 模型选择-正则化
统计学习是最优化问题。
先确定模型复杂度,再根据讲演风险最小化策略,求解参数。对候选模型进行泛化误差评估,选择泛化误差最小的模型。
最常用的方法就是正则化。正则化是结构风险最小化的实现。
结构风险=经验风险加正则化项
正则化是在经验风险加正则化项(惩罚项,是与模型复杂度的单调递增函数,模型越复杂,正则化值越大)。正则化项的作用就是选择经验风险和模型复杂度同时较小的模型。
第一项是经验风险,第二项是正则化项。比如回归问题,损失函数是平方损失,正则化项是L2范数。
正则化符合奥姆剃刀原则:能很好解释数据并且简单的模型才是好模型。
正则化从贝叶斯角度看:正则化项是对应模型的先验概率,比如模型复杂度较小的模型,先验概率就比较大。
方法=模型+策略+算法
模型:所要学习的条件概率或者决策函数。
策略:
损失函数:度量模型一次预测的好坏。损失函数越小,模型越好。
风险函数:度量平均意义下模型预测的好坏。
损失函数期望:也称:风险函数/期望损失。是函数关于联合分布P平均意义下的损失。学习的目标就是选择期望风险最小的模型。
模型F(X)关于数据集的平均损失称经验风险或经验损失:
当样本趋于无穷时,经验风险趋于期望风险,所以用经验风险估计期望风险(样本少,结果不一样。故实际上需要对经验风险进行一定的矫正)。
所用策略:1.经验风险最小化。2.结果风险最小化。
经验风险最小化:最优化问题
当样本足够大,经验风险最小化效果好。模型是条件概率分布、损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。
当样本很小时,经验风险效果不好,容易发生过拟合。
结果风险最小化:
是为防止发生过拟合提出的策略。结构风险=经验风险+正则化项=正则化。
经验风险定义:
最优化问题:
算法:是指学习模型的具体计算方法。
1.2.1 留出法
按比例留出部分数据做测试集数据。
多次留出法,取平均值:
过多,变成以全部数据集D做训练,少量的测试集T不能正确评估。
过少,训练集数据因每次数据划分具有差异,训练效果泛化能力差。
T小,方差大;D小,偏差大;
1.2.2 交叉验证法
交叉验证法是留出法的升级版,宏观上不再是随机划分,而是初始划分数据为K份。实验做K-1次训练和1次测试,称为K折交叉验证。K=10.
10次10折交叉验证法等效于100次留出法训练测试。
1.2.3 自助法
每次采样1个,重复M次,做训练数据集D’,其余数据做测试数据集D/D’,始终没有被采样的数据概率为36.8%,。其中没有被采样的部分,可有效测试训练结果,称包外估计。
自主法适合数据集小,难以划分数据集的场景。但是采样hi改变数据集分布,引入估计误差,因此,数据集足够的情况下还是用留出法和交叉验证法。
1.3 性能度量
不同性能度量方法,评判结果不一样。回归任务:均方误差。
1.3.1 查全率-查准率
查全率-召回率-R-Recall
用户感兴趣的信息中有多少被检索出来。
查准率-准确率-P-Precision
检索出来的结果有多少比例是用户感兴趣的。
P=TP/(TP+FP)
R=TP/(TP+FN)
R&P是反比例的关系。
1.3.2 F1&P-R曲线
外面的曲线性能好,有交叉点的不一定。计算面积比较麻烦,可用平衡点BEP比较。BEP过于简单,就用F1称调和平均,称加权调和平均。还有宏观F1、P、R。
1.3.3 ROC&AUC
ROC曲线是不考虑更注重P还是R的情况下的一般泛化能力,期望泛化性能。
纵轴:真正例率,TPR(True Positive Rate)。
横轴:假正例率,FPR。
ROC也是外面的那个性能好,有交叉点不一定,可以看面积,就是AUC。
1.3.4 代价敏感曲线
代价越大,值越大。若将第 0 类判别为第 1 类所造成的损失更大,则 cost01 > cost10;
在非均等代价下,ROC 曲线来反映出学习器的期望总体代价。其中 p 是样例为正例的概率;
ROC 曲线上每一点对应了代价平面上的一条线段,设 ROC 曲线上的点的坐标为(FPR,TPR),则先计算出 FNR = 1 - TPR,再在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积表示该条件下的期望总体代价,所有线段的下界围成的面积即为所有条件下学习器的期望总体代价,当然后越小越好,如
代价曲线图的 x 轴是取值为 [0, 1] 的正例概率代价,y 轴是取值为 [0, 1] 的归一化代价。
1.4 比较检验
模型性能检验是非常麻烦的事情:需要考虑的因素有:
- 像想要的是泛化性能,但是只能获得测试集性能,两个是不同的。
- 测试集数据本身的不同,得到的结果也不一样。(样本、比例、大小)
- 算法具有随机性。
比较好的办法是基于:“统计假设检验”。利用测试集误差近似于泛化误差。
假设检验方法有:交叉验证t检验、McNemar检验、Fridman检验、Nemenyi检验。
1.5 偏差与方差
为了解为什么有这样的性能,用“偏差-方差分解”解释学习算法泛化性能的重要工具。“偏差-方差分解”对算法的期望误差进行拆解,得到偏差、方差和噪声的和。
偏差:期望与真实的偏离程度,是算法本身的拟合能力。
方差:同样大小数据集变动导致学习性能的变化,是变现了数据扰动造成的影响。
噪声:当前算法所能达到的泛化误差的下界,反应数据本身的难度。
称偏差-方差窘境。