訓練データとテストデータでの変換(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())