標準化スケーリング
標準化スケーリングは、数値特徴量の平均を0、分散を1に変換します。この演習では、sklearn の StandardScaler() を使って標準化を行います。まず、数値列のフィルタリングと列に関する知識を組み合わせて、スケーリングを適用する対象列だけを選択します。このフィルタリングはすでに用意されており、部分一致を可能にする正規表現を使って実行されます。次に、fit_transform() を使って対象の列を変換します。
pandas モジュールはワークスペースで pd として利用可能で、サンプルの DataFrame は df に読み込まれています。さらに、hour 列はすでに datetime に変換済みで、sklearn.preprocessing から StandardScaler も利用できます。
この演習はコースの一部です
PythonでMachine Learningを使ってCTRを予測する
演習の手順
- 数値列を選択し、与えられた
filter_colsを.select_dtypes()を使ってフィルタリングします。 StandardScaler()を作成し、.fit_transform()を使って対象列に標準化スケーリングを適用します。- 変換後の新しい列の分散を
.var()で出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get non-categorical columns, with a filter
num_df = df.____(include=['int', 'float'])
filter_cols = ['click', 'banner_pos', 'device_type',
'search_engine_type', 'product_type', 'advertiser_type']
new_df = num_df[num_df.columns[~num_df.columns.____(filter_cols)]]
num_cols = new_df.____
# Transform columns using StandardScaler
scaler = ____()
df[num_cols] = scaler.____(df[____])
# Print mean and variance of transformed columns
print(df[num_cols].mean())
print(df[num_cols].____)