美文网首页
技巧 - 训练集与测试集划分方法

技巧 - 训练集与测试集划分方法

作者: 白尔摩斯 | 来源:发表于2019-01-07 18:20 被阅读117次

    1、留出法 (hold-out) :
    一部分为训练集,一部分为测试集。
    尽量保证数据分布的一致性,划分比例可以是 2:1 或 4:1
    对应函数:train_test_split(X,Y,test_size)

    2、交叉验证法 (k-fold cross validation) :
    划分为k个互斥子集,用k-1作为训练集,剩下一个为测试集,最终每一个子集都会作为测试集,其余子集作为训练集,共进行k次建模,最终得到测试结果的均值。
    k取值一般为10。
    随机取k个互斥子集,进行p次,最后p个k-fold cv进行取平均,叫做p次k折交叉验证。

    k折交叉验证的目的:
    得到模型相对稳定的评价指标,尽可能避免异常值带来的影响。
    通过:在划分的时候选择多个训练集和多组测试集,求平均的效果。通过平均的度量使得测试结果相对可信一点。

    k折交叉验证即能帮我们挑选出最优参数,也能帮我们挑选出最优模型。

    3、留一法LOOCV (leave-one-out cross validation):
    m个样本,令k=m,作为k折交叉验证的特例。只有1种划分方法,即每个测试集只有一条数据。
    优势:每个模型都能很好的反应原始数据集的特性。
    劣势:计算量在数据量大的时候会非常大,还不算调参的计算量。
    让每一个样本都做一次测试集,其他样本都做训练集。即做一次LOOCV 需要做m次的训练,最后取平均。

    4、Bootstrapping(自助法):
    设现在有一个数据集D,对D中的m个数据随机取样,接着将数据放回原数据集。然后再一次继续取样,重复m次,产生一个新的数据集D' ,最后取得的数据作为测试集。

    D={1,5,2,3} m=4
    D‘ 长度也应该等于4 ,所以抽4次
    第一次抽到了2,然后吧放回去 D’ = {2}
    第二次抽到了2,然后把2放回去 D‘ = {2,2}
    第三次抽到了2,然后把2放回去 D‘ = {2,2,2}
    第四次抽到了3,然后把3放回去 D‘ = {2,2,2,3}
    其中{1,5}没有被抽到,将其作为测试集。

    根据概率,未取到的数据占比约为36.8%

    相关文章

      网友评论

          本文标题:技巧 - 训练集与测试集划分方法

          本文链接:https://www.haomeiwen.com/subject/dlkprqtx.html