机器学习的目的是产生泛化能力好的模型,那么什么样的模型才是泛化能力好的模型呢,这需要按照一定的评估方法和度量指标去衡量。
机器学习的评估方法
一般情况下,我们手头没有未知样本。我们需要一个测试集测试模型对 新样本的判别能力。以测试集的测试误差作为泛化误差的近似。测试集的选取一般采用以下三种方法:留出法、交叉验证法、自助法。
1、留出法
留出法直接将数据集划分为两个互斥的集合。
注意点:要保持数据分布的一致性;采用多次随机划分取均值的评估方法;测试集的比例应该适当(1/3~1/5)
2、交叉验证法
将数据集平均分成k份,并尽量保证每份数据分布一致。依次用其中k-1份作为训练集,剩下的一份作为测试集。这样就有k组训练集/测试集,从而可以进行k次训练和测试,返回k次测试结果的均值,也称为“k折交叉验证法”。
10折交叉验证若令k=m,则称为“留一法”
3、自助法
在留出法和交叉验证法中,由于只采用了一部分样本用于训练,因此会引入一些因为样本规模不足而引入的偏差,而留一法的算法复杂度又太高。自助法可以解决这个问题。
假将样本集记为D,D中共有m个样本。对D进行有放回抽样m次,得到包含m个样本的训练集D'。而未被采样到的样本集合(D-D')作为测试集。按照概率,样本每次不被抽到的概率是(1-1/m),在m次采样中,始终不被抽到的概率为
样本始终不被抽到的概率即,通过自助抽样,样本中约有36.8%的数据不被抽到,用于测试,称为“包外测试”。
自助法改变了数据分布,会引入估计偏差,一般只在 数据集较小的情况下采用。
网友评论