2016-08-05 6 views
3

トレーニングデータを標準化した後、私は、線形回帰モデル(または任意の他のモデル)を構築するためにSklearnを使用していますsklearnを使用して、新しいデータを予測:は、次の手順で

X_trainとY_trainが

    トレーニングデータです
  1. X_train = preprocessing.scale(X_train) 
    
  2. トレーニングデータを標準化は

    モデルに適合します
    model.fit(X_train, Y_train) 
    

モデルをスケールデータに合わせたら、フィットモデルを使用して新しいデータ(一度に1つまたは複数のデータポイント)を予測するにはどうすればよいですか?私が使用しています何

は、私がpreprocessing.scaleで変換関数をしないのです考えるデータは

NewData_Scaled = preprocessing.scale(NewData) 
  • PredictedTarget = model.predict(NewData_Scaled) 
    
  • データを予測

    1. スケールでありますそう私は訓練されたモデルでそれを保存し、それを新しい目に見えないデータに適用することができますか?助けてください。

    答えて

    10

    these docsをご覧ください。

    前処理モジュールのStandardScalerクラスを使用すると、トレーニングデータのスケーリングを記憶して将来の値に適用できます。

    from sklearn.preprocessing import StandardScaler 
    X_train = np.array([[ 1., -1., 2.], 
            [ 2., 0., 0.], 
            [ 0., 1., -1.]]) 
    scaler = preprocessing.StandardScaler().fit(X_train) 
    
    scaler

    各機能を標準化することを意味し、スケーリング係数を計算しました。データセットに適用する

    >>>scaler.mean_ 
    array([ 1. ..., 0. ..., 0.33...]) 
    >>>scaler.scale_          
    array([ 0.81..., 0.81..., 1.24...]) 
    

    import numpy as np 
    
    X_train_scaled = scaler.transform(X_train) 
    new_data = np.array([-1., 1., 0.])  
    new_data_scaled = scaler.transform(new_data) 
    >>>new_data_scaled 
    array([[-2.44..., 1.22..., -0.26...]]) 
    
    +0

    これは便利な答えである - StandardScalerは、新しい目に見えないデータでも使用することができれば、私は思っていました。それは大したことです。 –