2017-08-22 2 views
1

私は2つのデータセット(訓練とテスト)を持っていますが、それらは両方ともフィーチャとラベルの正確な同じ列を持ち、異なる内部(数値と値)のみです。ここに私のコードは次のとおりです。scikit-learn MLPRegressorでトレーニングとテストのどちらを決定するか?

import pandas as pd 
import numpy as np 

from sklearn.model_selection import train_test_split 
from sklearn.neural_network import MLPRegressor 

datatraining = pd.read_csv("datatrain.csv") 

datatesting = pd.read_csv("datatest.csv") 

columns = ["Full","Id","Id & PPDB","Id & Words Sequence","Id & Synonyms","Id & Hypernyms","Id & Hyponyms"] 

labeltrain = datatraining["Gold Standard"].values 
featurestrain = datatraining[list(columns)].values 


labeltest = datatesting["Gold Standard"].values 
featurestest = datatesting[list(columns)].values 

X_train = featurestrain 
y_train = labeltrain 

X_test = featurestest 
y_test = labeltest 

mlp = MLPRegressor(solver='lbfgs', hidden_layer_sizes=50, max_iter=1000, learning_rate='constant') 

mlp.fit(X_train, y_train) 

print('Accuracy training : {:.3f}'.format(mlp.score(X_train, y_train))) 
print 

mlp.fit(X_test, y_test) 

print('Accuracy testing : {:.3f}'.format(mlp.score(X_test, y_test))) 
print 

私はまだ私はトレーニングとその別のテストであるかを判断するために何の差別を見ていないので、私のコードは、電車やテストのスコアを見つけることが正しいことを疑います。私は両方がトレーニングであること、または両方がテストされていることを知っています。 誰でもその決定方法を説明できますか?または、私のコードはすでに正しいですか?ありがとう

+0

通常、データを2つのデータポイントセットに分割し、置き換えずにランダムに選択します。 50分の50、または80分の20の5つの異なる組み合わせとしてブートストラップすることができます。 – duffymo

答えて

4

トレーニングにモデルを適合させたら、テストに再び適合させるべきではありません。代わりに、テストセットを使用してモデルのパフォーマンスを評価する必要があります。したがって、行を削除する必要があります

mlp.fit(X_test, y_test) 

コードから削除する必要があります。その後、行を使用して

print('Accuracy testing : {:.3f}'.format(mlp.score(X_test, y_test))) 

あなたはあなたのモデルの性能を目に見えないデータで評価することができます。

+0

私は行を削除しますが、それは負のテストのスコアを示し、実行するたびに常に変更されます – sang

+1

本当に否定的かもしれないR^2のスコアであるため、スコアは負です(http://scikit-learn.org /stable/modules/generated/sklearn.neural_network.MLPRegressor.html#sklearn.neural_network.MLPRegressor.score)。プロセスにランダム性があるため、スコアは毎回異なります。コードの先頭に行np.random.seed(1)を追加して、結果を一致させてください。 –

+0

私はscikitとnumpyを初めて使うので、 'np.random.seed(1)'の使用法はまだ分かりません。そのための別の例がありますか?ありがとう – sang

関連する問題