始める無料で始める

訓練データとテストデータでの変換(I)

これまで、ある列に基づいてスケーラーを作成し、そのスケーラーを学習に使ったのと同じデータに適用してきました。Machine Learning のモデルを作成する際は、通常、過去のデータ(訓練データ)でモデルを作り、そのモデルを未知の新しいデータ(テストデータ)に適用します。このとき、訓練データとテストデータの両方に同じスケーリングが適用されるようにする必要があります。 実務では、スケーラーは訓練データで学習(fit)し、その学習済みスケーラーをテストデータに適用します。テストデータでスケーラーを再学習してはいけません。

この演習と次の演習では、so_numeric_df DataFrame を訓練用(so_train_numeric)とテスト用(so_test_numeric)に分割しています。

この演習はコースの一部です

Python で学ぶ Machine Learning のための特徴量エンジニアリング

コースを見る

演習の手順

  • StandardScaler()SS_scaler としてインスタンス化します。
  • 訓練データの Age 列に対して StandardScaler をfitします。
  • テストデータ(so_test_numeric)の Age 列をtransformします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import StandardScaler
from sklearn.preprocessing import StandardScaler

# Apply a standard scaler to the data
SS_scaler = ____

# Fit the standard scaler to the data
____

# Transform the test data using the fitted scaler
so_test_numeric['Age_ss'] = ____
print(so_test_numeric[['Age', 'Age_ss']].head())
コードを編集して実行