1. 评估方法
通常我们通过一个“测试集”来测试学习器对新样本的判别能力,然后用测试集上的“测试误差”作为泛化误差的近似,依此来评估学习器并作出选择。下面介绍几种常见的作法
1.1 留出法
“留出法”(hold-out)直接将数据集D划分为两个互斥的集合,一个为训练集,另一个作为测试集。常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。
1.2 交叉验证法
“交叉验证”(cross validation)先将数据集D划分为k个大小相似的互斥子集,每个自己都尽可能保持数据分布的一致性,即从D中通过分层采样得到,然后每次选用k-1个子集作为训练集,剩余的那个子集作为测试集;这样就可以得到k组训练/测试集,从而进行k轮的训练和测试,最终返回值是这k个测试结果的均值。交叉验证法评估结果的稳定性和保真性在很大程度撒谎功能取决于k的取值,因此交叉验证法又称“k折交叉验证”,k的常用取值是10,5,20。
1.3 自助法
上述两种评估方法都是在原本的训练集D上进行划分测试集,减小了输入数据的规模,对模型造成了一定程度的影响,有没有什么办法可以减少训练样本规模不用造成的影响,同时还能比较高效地进行实验估计呢?
“自助法”是一个比较好的解决方案,它以自助采样法为基础,给定包含m个样本的数据集D, 每次采取随机抽取并放回的策略随机抽取m次,就形成了含有m个样本的数据集d(随机森林中构建决策树时也是采用类似的方式),这过程中会有一部分样本不会被抽取,其概率为:
因此,我们可以用这约0.368的未出现在采样数据集d中的数据作为d相应的测试集。
自助法在数据集较小,难以有效划分训练/测试集时很有用;但是自助法改变了初始数据集的分布,这会引入估计偏差。