データの正規化|データの前処理

前処理の正規化

前処理でよく使われる正規化(標準化)は、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)

参考