机器学习笔记(PART II)模型的评估和选择(I)

来源:互联网 发布:手机电池校准软件 编辑:程序博客网 时间:2024/06/11 03:20

经验误差和过拟合

错误率:

分类错误的样本数占样本总数的比例
如果在m个样本中有a个样本分类错误则错误率E=a/m;

精度:

精度=1-错误率
acc=1a/m

训练误差(经验误差):

学习器在训练集上的误差

泛化误差

学习区在新样本上的误差

过拟合(过配)

学习能力过于强大,以至于把一些不是太一般的特性都学到了

欠拟合(欠配)

学习能力低下

评估方法

基本思想

使用测试误差来近似泛化误差

注意事项

假设测试样本也是从样本的真实分布中独立同分布采样而得到。测试集应该和训练集互斥,即测试样本尽量不在测试样本中出现。

矛盾点

如果只有一个包含m个样例的数据集合D={(x1,y1),(x2,y2),,(xm,ym)},如果既要训练又要测试则如何通过适当的方法进行处理分出训练集S和测试集T,用T来评估其测试误差,作为对泛化误差的估计。

方法

留出法

方式

“留出法”(hold_out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集合S ,另一个作为测试集T,即D=ST,ST=,在S上训练出模型之后,用T来评估其测试误差,作为对于泛化误差的估计。

注意事项

训练集和测试集的划分要尽可能保持数据分布的一致性,避免因为数据划分过程引入额外的偏差而对最终结果产生影响。
单次留出法的到的结果可能不够可靠,在使用留出法的时候一般要多次划分重复进行试验评估最后取平均值作为留出法的评估结果。

ST的大小问题

如果训练集S包含了绝大多数的样本,则训练出的模型会更接近于D训练出的模型,但是由于T比较小,评估的结果可能会不够稳定准确。
如果测试集T包含的样本比较多,则训练集SD的差别更大了,被评估的模型与用D训练出的模型可能有较大的差别。从而降低了评估结果的保真性。

交叉验证法

首先将数据集D划分为k个大小相似的子集,即D=D1D2DkDiDj=(ij)。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到,然后,每次使用k1个子集的并集作为训练集,剩下的那个子集作为测试集;这样就可以获得k组训练(S)和测试集(T)从而可以进行k次训练和测试,最终返回的是这k个测试结果的均值。

这里写图片描述

pk折交叉验证

k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这pk折交叉验证结果的均值。
通常使用“10次10折交叉验证”。

自助法

引入的意义

在留出法和交叉验证法中,由于保留了一部分用于测试,世界评估的模型所使用的训练集SD小,这必然会引入一些因训练样本规模不同而导致的估计误差。

具体做法

直接以自助采样(bootstrap sampling)为基础
给定包含m个样本的数据集D,我们对它进行采样产生数据集D:每次随机从D中挑选一个样本,将其拷贝放入D中,然后再将该样本放回数据集D中,使得该样本在下次采样时仍然有可能被采到,做一个简单的估计,样本在m次采样中始终不被采到的概率是(11m)m取极限

limm+(11m)m1e0.368

通过自助采样,初始数据集中有大约36.8%的样本没有出现在采集数据集D中,于是可以使用D作为训练集合,D\ D作为测试集合,这样实际评估模型和期望评估的模型,都使用m个训练样本,此时仍然有数据总量约13的数据,没有在训练集合中出现过的数据可以用于测试,这样测试结果被称为“外包估计”(out_of_bag_estimate)。

阅读全文
0 0
原创粉丝点击