前処理(スケーリング)の正規化
前処理でよく使われる正規化(標準化)は、2つあります。
1つは、平均0、分散1に変化する正規化
2つ目は、最小値0、最大値1に変換する正規化
以上の2つについて、紹介します。
平均0、分散1の正規化
$$
\frac{X – \bar{X}}{\sigma}
$$
import numpy as np std_value = train_X.std(axis=0) mean_value = train_X.mean(axis=0) s_train_X = (train_X - mean_value) / std_value s_val_X = (val_X - mean_value) / std_value
sklearnで前処理
from sklearn.preprocessing import StandardScaler scaler_std = StandardScaler() scaler_std.fit(train_X) std_train_X = scaler_std.transform(train_X) std_val_X = scaler_std.transform(val_X)
最小値0、最大値1の正規化
$$
\frac{X – Min(X)}{Max(X) – Min(X)}
$$
max_value = train_X.max(axis=0) min_value = train_X.min(axis=0) m_train_X = (train_X - min_value) / (max_value - min_value) m_val_X = (val_X - min_value) / (max_value - min_value)
sklearnで前処理
from sklearn.preprocessing import MinMaxScaler scaler_mm = MinMaxScaler() scaler_mm.fit(train_X) mm_train_X = scaler_mm.transform(train_X) mm_val_X = scaler_mm.transform(val_X)