美文网首页
交叉验证cross validation

交叉验证cross validation

作者: lilina228 | 来源:发表于2018-03-10 20:24 被阅读0次
    • 1、train_test_split
      第一个要介绍的函数,train_test_split,用于分割所有样本,将其按照指定的大小分割训练集和测试集。
      以sklearn中的数据集iris为例:
    import numpy as np
    from sklearn.model_selection import train_test_split
    from sklearn import datasets
    from sklearn import svm
    
    iris=datasets.load_iris()
    X_train,X_test,y_train,y_test = train_test_split(iris.data, iris.target, test_size = 0.4, random_state=0)
    
    • 2、k-fold
      此函数将样本划分为K份,将K-1份作为训练集,剩下的一份作为测试集,即为留一交叉验证。其中参数n_folds默认为3,即默认为3折交叉验证。
    from sklearn.model_selection import KFold
    kf = KFold(n_splits=2)
    for train,test in kf.split(X):
    
    • 3、Stratified k-fold
      此函数StratifiedKFold()比较常用,相比于KFold函数其优势在于,前者在划分样本时会按照类别百分比实现,使得每个类别的百分比在训练集和测试集中都是一样的,这保证了不会有某一个类别的数据在训练集集中而测试集中不存在的情况,反之亦然。
    from sklearn.cross_validation import StratifiedKFold
    cv = StratifiedKFold(y, n_folds=6)
    for i,(train,test) in enumerate(cv):
    

    或者,

    from sklearn.model_selection import StratifiedKFold
    skf = StratifiedKFold(n_splits=3)
    for train,test in skf.split(X,y):
    

    其他的一些函数的具体使用,可参照http://scikit-learn.org/stable/modules/cross_validation.html

    相关文章

      网友评论

          本文标题:交叉验证cross validation

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