2016-04-26 8 views
0

私は2つのデータセット、トレーニング&テストで使用しているモデルを持っています。 scikit-learnを使ってモデルを構築する前に、予測子を正規化する必要があります。訓練に使用されたシグマ/ミューによる第2テストデータセットの予測データを正規化する方法は?

は私のモデルのトレーニングデータのために言うことができます:

Training[X1] has mean=10,stddev=1.5 
    Training[X2] has mean=45,stddev=17 
    etc... 

そして、私のテストデータファイルのためのそれは、元と同じスケールを使用していますように、私は、テスト・データ・ファイルを正規化するにはどうすればよい

Testing[X1] has mean=9,stddev=1.8 
    Testing[X2] has mean=40,stddev=13 
    etc... 

データセット?

私はこのコードを使用しようとしましたが、右の一見を見ていないようです:

from sklearn.preprocessing import StandardScaler 
scaler = StandardScaler() 
scaler.fit(X_train) 
X_train = scaler.transform(X_train) 
X_test = scaler.transform(X_test) 

答えて

0

提示したコードが正しいアプローチであり、あなたが訓練中に、後でちょうど使用上の平均値/ STDに合いますそれはテストフェーズ中です。列車とテストの間のmu/sigmaが異なるという事実は正常であり、あなたはそれに対処しなければなりません。このような状況の唯一の理由は、これらの2つの値が収束する十分なデータポイント(データが正しく収集されていると仮定した場合)が小さすぎるためです。

+0

私のテストデータセット(1kレコード未満)は、トレーニングセット(65kレコード)に比べてかなり小さいです。確認してくれてありがとう、私はより密接に何か他のものがあるかどうかを見るためにモデルを調べなければならないでしょう。 – NumericOverflow

関連する問題