首页 > 科技 >

一名合格的算法工程师,必须知道的模型验证方法(2)

2018-10-15 04:18:50 网络整理 阅读:192 评论:0

K-Fold交叉验证将数据集划分成K的互斥的数据子集,依次遍历这K个子集,每次都把当前的子集作为测试集,其余所有的子集作为训练集,最后把K次评估指标的平均值作为最终的评估指标。K-Fold交叉验证的稳定性和K的取值有很大关系。K值太小实验稳定性不够,K值太大都可能导致建模成本提高,一般K值取10。

当数据样本量为N,且K=N时,就是留一法,每一条样本都当成是测试集,其余数据作为训练集。留一法的优缺点都很明显:首先计算成本很高,而且在测试数据时,一条数据的结果不太好绘制ROC曲线,计算精确率和召回率这些模型指标,但是留一法在数据稀疏的时候,还有很适用的。

3 自助法

不管是Holdout检验还是K-Flod交叉验证,都是基于划分训练集和测试集合方法进行模型评估的,然而,当样本规模比较小的时候,将样本进行划分会让训练集变得更小,这样可能会影响模型的训练结果。自助法就可以很好解决这种情况,以自主采样为基础,使用有放回的重复采样的方式进行训练集和测试集的构建。

Holdout检验和K-Flod交叉验证在训练模型时用的数据都只是整个数据集的一个子集,得到的模型会因为训练集大小不一致产生一定的偏差,而自助法能解决这个问题。但是自助法改变了初始数据集的分布,会引入估计偏差,所以在数据量足够多的时候,一般使用前两种放法,而在数据量比较小的时候,选择使用自助法。

相关文章