正規化の代表的な手法 z-score normalization と min-max normalization

データ分析や機械学習をする際にキーとなるステップの1つがデータの前処理です。今回は前処理の代表的な手法である正規化についてまとめてみました!

正規化の代表的な手法 z-score normalization と min-max normalization

なぜ前処理が必要になるか?

簡単に説明すると、パラメータが複数あったときにそれぞれスケールが違うと、計算するときにスケールの違いに値が引っ張られてしまうのを防ぐため。

例えば、身長と体重が挙げられる。
違う尺度での計算を避けるため、0から1の値に変換する場合がほとんど。
この0から1への変換をスケーリングといい、正規化などの様々な方法がある。

正規化(normalization)の代表的な手法

正規化(normalization)の代表的な手法に、

  1. z-score normalization
  2. min-max normalization

がある

1. z-score normalization

以下の式で値が0から1になるように変換すること

データxから平均(x_mean)を引き、その値を標準偏差(x_std)で割っている
標準化を行うと、どの変数も、その母集団が平均0、分散1の標準正規分布に従うことになる
そのため、正規化よりも外れ値に強くなる。

2. min-max normalization

以下の式で値が0から1になるように変換すること

最小値・最大値を使った方法では標本のデータしか見ていないため、最大値・最小値に強く影響を受けてしまう。したがって、外れ値などが混ざっていると結局大きく引っ張られてしまう。

pandasのDataFrameで2つの正規化を書いてみた

結局どっちを使えばいいのか?

どちらを扱うにしても、注意しなければならない点があります。それは、訓練データとテストデータを同時(同じ尺度)でスケーリングしなければならないことです。

同じ尺度でスケーリングしないと、違う母集団レベルで計算してしまうことになってしまって、精度が極端に落ちてしまいます。

注意点を踏まえた上で正規化と標準化のどっちを使えばよいかの個人的な判断基準を以下にまとめます。

  1. もともと母集団レベルで最大値と最小値の範囲が決まっているときなどはmin-maxを扱う方が計算しやすい
  2. 最大値・最小値に上限、下限がない場合は、z-scoreを使う

未知のテストデータに対して、スケーリングをどのように適用すればよいか、まだ理解が足りていないので引き続き調べていきます。(どなたかいい知見を持っている方がいましたら、教えていただけるとうれしいです。)

まとめ

本記事では、データ分析や機械学習をする際に必要な前処理の代表的な手法である正規化についてまとめてみました!


もしよければ応援クリックお願いします
↓↓↓↓↓
にほんブログ村 IT技術ブログ IT技術メモへ