標準化と正規化(スケーリング)

このページは、特徴量の スケール(単位や値の範囲)が列ごとにバラバラなときに行う、代表的な前処理を短く整理するノートです。
(ライブラリ名は例として scikit-learn の用語を出しますが、思想は一般です。)

なぜ必要か

特徴によって値の範囲が大きく違うと、距離やマージンを使う手法では 大きいスケールの列だけが支配的になりやすいです。
例:一方の特徴が 0〜1、もう一方が 0〜100000 のような組み合わせ。

標準化(Standardization, z-score)

各特徴について、だいたい 平均0・分散1 になるように線形変換します。

[ z = \frac{x - \mu}{\sigma} ]

  • (\mu):その特徴の平均
  • (\sigma):標準偏差(0に近いときは別処理が必要なことがある)

正規化(Min-Max scaling)

各特徴を 固定範囲(典型は ([0,1]))に線形縮小します。

[ x_{\text{scaled}} = \frac{x - x_{\min}}{x_{\max} - x_{\min}} ]

どちらを使うか(目安)

  • 標準化:外れ値の影響をある程度残しつつ、スケールを揃えたいとき
  • Min-Max:厳密に範囲を決めたいとき(外れ値があると範囲が引き伸ばされやすい)

アルゴリズムごとの最適解は一つではないので、検証で比較するのが現実的です。

関連