クロス検証cross validation

1271 ワード

  • 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部をトレーニングセットとし、残りの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