2016-10-10 29 views
0

今まで私は1つのデータセット(df.csv)しか持っていませんでした。これまでのところ、通常の回帰モデルでは、検証サイズ20%と.train_test_splitを使用しました。私は3つの別々のデータセットを持っている場合機械学習モデルでtrain.csv、test.csv、ground_truth.csvを使用するにはどうすればよいですか? (クロスバリデーション/ Python)

array = df.values 
X = array[:,0:26] 
Y = array[:,26] 
validation_size = 0.20 
seed = 7 
X_train, X_validation, Y_train, Y_validation = 
    cross_validation.train_test_split(X, Y, 
    test_size=validation_size, random_state=seed) 
num_folds = 10 
num_instances = len(X_train) 
seed = 7 
scoring = 'mean_squared_error' 

(train.csv /のtest.CSV/ground_truth.csv)、私はそれをどのように対処することができますか?もちろん、最初はtrain.csv、次にtest.csv、最後にground_truthを使用します。しかし、これらの異なるデータセットを私のモデルにどのように実装すればよいですか?

+2

あなたのモデルをトレーニングしている間に列車/テスト/検証の分割をcsvファイルにプッシュする理由がないので、あなたの質問は本当に意味をなさない。 sklearnのドキュメントの例を見直し、回帰の完全な試みを投稿することをお勧めします。 http://scikit-learn.org/stable/modules/cross_validation.html –

+0

ご連絡ありがとうございます。しかし、ちょうど私の問題は、私は1つだけのデータセットを持っているときにクロス検証に対処する方法を知っています。しかし、私の場合、私は3つのデータセットを持っています。障害イベントのないtest_data(このために私は予後を必要とする)および残りのライブが定義されているground_throuth_dataを使用して、 – matthew

答えて

1

クロスバリデーションを実行すると、列車とテストのデータは本質的に同じデータセットであり、オーバーフィットを避けるためにさまざまな方法で分割されます。折り畳みの数は、セットが分割される方法の違いを示します。

たとえば、5倍のクロスバリデーションではトレーニングセットが5つに分割され、そのうちの4つがトレーニングに使用され、1つがテストに使用されます。したがって、あなたの場合、次のオプションがあります。

トレーニングセットだけでクロスバリデーションを実行してから、テストセットとグラウンドトゥルースをチェックします(フィッティングはトレーニングセットでのみ行われます。テストとグラウンドの真理は同じでなければならない)、あるいは、より大規模でおそらくより代表的なデータセットのためのトレーニングとテストを組み合わせ、地上の真理をチェックする。

+0

"トレーニングセットだけでクロスバリデーションを実行してから、テストセット[...]でチェックしてください。私はこの分野では本当に新しいです。訓練されたモデル(すでにクロスバリデーションなどを行っています)を持っていて、2番目のデータセット(test.csv)でテストしたいのですが、どのように見えますか?上記の私のコードのようなテンプレートや標準的なアプローチがありますか? – matthew

+1

使用するフレームワーク/アルゴリズムによって異なります。投稿したコードからsklearnの線形回帰を使いたいと思っています。公式の文書http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.htmlを確認し、例を検索することができます。投稿したコードは、トレーニングセットの分割のみに使用されます。 – rpd

関連する問題