2016-09-28 15 views
9

私はthe IRIS example of tensorflowに従っています。テンソルフローでk倍クロスバリデーションを実行するにはどうすればよいですか?

私のケースでは、すべてのデータが1つのCSVファイルにあり、分割されていないので、そのデータに対してk倍交差検証を適用したいとします。

私がIRISの例と同じような多層ニューラルネットワークと、このデータセット上のk倍のクロス検証を実行するにはどうすればよい

data_set = tf.contrib.learn.datasets.base.load_csv(filename="mydata.csv", 
                target_dtype=np.int) 

がありますか?

答えて

9

NNは通常、CVが使用されない大きなデータセットで使用されます。非常に高価です。 IRIS(各種50検体)の場合は、おそらくそれが必要です.. scikit-learn with different random seedsを使用してトレーニングとテストを分割してみませんか? kfoldで

kの
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) 

  1. 分割データが異なった場合は、 "random_state"
  2. が_test

を使用して

  • テストを_train使用してネットを学ぶために別の値を渡しますあなたはランダムな種子が好きではなく、もっと構造化されたk倍の分割が必要です。 これはf ROM here

    from sklearn.model_selection import KFold, cross_val_score 
    X = ["a", "a", "b", "c", "c", "c"] 
    k_fold = KFold(n_splits=3) 
    for train_indices, test_indices in k_fold.split(X): 
        print('Train: %s | test: %s' % (train_indices, test_indices)) 
    Train: [2 3 4 5] | test: [0 1] 
    Train: [0 1 4 5] | test: [2 3] 
    Train: [0 1 2 3] | test: [4 5] 
    
  • 関連する問題