• 极速理解ML交叉验证


    交叉验证(Cross Validation)是验证分类器(你训练的模型)性能的一种统计分析方法。其基本思想是在某种意义下将原始训练数据进行分组,训练集和验证集。所以对于一个大数据集,一般我们会把它按照 6:2:2 分成训练集、验证集和测试集(简易的机器学习过程会省去验证集)。首先用训练集对模型进行训练,再利用验证集来测试训练得到的模型,以此来初步评价模型的性能(注意!交叉验证还是处于训练的阶段,不是测试阶段)。
    常见的交叉验证方法包括简单交叉验证K折交叉验证留一法交叉验证留P法交叉验证

    简单交叉验证

    就是上面最简单的概念,将训练数据分为训练集和验证集,训练集训练模型,验证集验证模型,验证得到的准确率就是模型的性能指标。

    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split( data, target, test_size=.4, random_state=0 )
    
    • 1
    • 2

    K折交叉验证(K-Fold)

    将训练数据分为K组(一般是均分),然后将每个子集数据分别做一次验证集,其余K-1组子集当作训练集,所以会进行K次交叉验证,得到K个模型,将K个模型最终的验证准确率取平均值,作为模型的性能指标,通常设K大于或等于3。

    from sklearn.model_selection import KFold
    kf = KFold(n_splits = 10) # k取10
    
    • 1
    • 2

    留一法交叉验证(LOO-CV)

    留一法交叉验证(leave-one-out cross validation)就是K折交叉验证里K=N的情况,就是每个子集只由一个样本数据组成,N个样本数据,所以会进行N次交叉验证,得到N个模型,将N个模型最终的验证准确率取平均值,作为模型的性能指标。

    from sklearn.model_selection import LeaveOneOut
    loo = LeaveOneOut()
    
    • 1
    • 2

    留P法交叉验证(LPO-CV)

    留P法交叉验证(leave-p-out cross validation)就是K折交叉验证里K=P的情况,P由我们自己定,每个子集只由P个样本数据组成,N个样本数据,所以会进行(N-P+1)次交叉验证,得到(N-P+1)个模型,将这些模型最终的验证准确率取平均值,作为模型的性能指标。

    from sklearn.model_selection import LeavePOut
    lpo = LeavePOut(p=5) #p取5
    
    • 1
    • 2
  • 相关阅读:
    网站被黑后处理方法及删除批量恶意代码的方法步骤
    java计算机毕业设计红河旅游信息服务系统源程序+mysql+系统+lw文档+远程调试
    Network: use --host to expose
    1.33 定时器总结篇
    【计算机网络】传输层(一)—— 传输层概述
    C++模板初阶
    RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo
    Java之动态代理的详细解析
    语音识别笔记
    一键部署服务(DNS,DHCP,RAID)
  • 原文地址:https://blog.csdn.net/weixin_45116099/article/details/126196890