データ前処理:正規化によるデータ変換

データ前処理(Data Preprocessing) には、(1)データクリーニング(Data Cleaning), (2)データインテグレーション(Data Integration), (3)データリダクション(Data Reduction), (4)データトランスフォーメーション(Data Transformation)があります。

正規化(Normalization) は、データトランスフォーメーションに関する手法です。正規化は、例えば、データセットの特徴量を、0-1のような小さい範囲のレンジに落とし込みます。

ワカメさん

この記事は「正規化」についてまとめます。

この記事がカバーする内容
  • 正規化を扱うメリットは何か?
  • 正規化にはどんな種類の方法があるか?
スポンサーリンク

正規化を利用するメリット

ヒトデちゃん

そもそも正規化は何のために利用するんですか?

正規化の利用目的
  • モデル学習の効率化
  • レンジが大きな特徴量の影響を抑制
  • 前知識がないデータの処理

正規化(Normalization)は、距離を計測するアルゴリズムの効率性・予測精度を向上するために扱います。数値の範囲が大きく異なる特徴量を扱うと、学習がうまく進まなかったりするからです。

例えば、長さの単位を「メートル」から「ミリメートル」に変更すると、データのレンジはより大きくなります。一般的に、レンジが大きな特徴量の影響は、大きくなる傾向にあります。

正規化は、異なる単位のデータを[-1,1]や[0,1]などの小さな共通レンジに落とし込み、単位の違いの影響を避ける手助けをします。

ワカメさん

ニューラルネットワーク、k-NNなどの分類アルゴリズムでも、正規化を利用します。

正規化の種類

ヒトデちゃん

正規化っていくつかアプローチがあるんでしょうか?

正規化の例として、ここでは、(1)min-max normalization, (2)z-score normalization, (3)log-scaling、の3つをまとめます。

Min-Max Normalization

Min-Max Normalizationは、特徴量の最大値と最小値を利用して、オリジナルのデータセットに対して変換を行います。

データセットの特徴量Aの最小値と最大値をそれぞれ\(min_A, max_A\)、特徴量Aの変換したい値を\(x_i\)、正規化によって得られる値を\(x^{\prime}_i\)とおくと、\(x^{\prime}_{i}\)は

$$x^{\prime}_{i} = \frac{x_i-min_A}{max_A – min_A}$$

から計算します。

Min-Max Normalizationの特徴として、オリジナルのデータ同士の関係性を保存することが挙げられます。

Min-Max Normalizationは、scikit learnでも扱えます。

z-score Normalization

z-score Normalizationは、特徴量Aの平均\(\mu_A\)と標準偏差\(\sigma_A\)を使う方法です。

特徴量Aの変換したい値を\(x_i\)、正規化によって得られる値を\(x^{\prime}_i\)とおくと

$$x^{\prime}_{i}=\frac{x_i – \mu_A}{\sigma_A}$$

から計算できます。

z-score Normalizationは

  • 実際の最小値・最大値が不明なとき
  • min-max normalizationで影響が大きな外れ値が存在するとき

に役立ちます。

log scaling

log scalingは、広いレンジのデータを狭いレンジに収めるために利用します。特徴量Aの変換したい値を\(x_i\)、正規化によって得られる値を\(x^{\prime}_i\)とおくと

$$x^{\prime}_{i}=\log x_i$$

から計算できます。

log scalingは、ベキ分布(power-law distribution)に従うデータに利用できます。log scalingはデータの分布形状を変え、線形モデルのパフォーマンスの向上に役立ちます。

ワカメさん

正規化(特にz-score normalization、log scaling)は大きくデータの分布を変えます。

まとめ

この記事は正規化についてまとめました。

正規化
  • 正規化は、データのレンジを共通尺度に落とすためのデータ前処理に関する手法
  • 正規化を扱うメリット
    1. モデル学習の効率化
    2. レンジが大きな特徴量の影響を抑制
    3. 前知識がないデータの処理
  • 正規化の種類
    1. Min-Max Noramlization
    2. z-score Normalization
    3. log scaling
ワカメさん

この記事は以上です。最後まで読んで頂きありがとうございました!

参考資料

(1) Jiawei Han, Micheline Kamber, Jian Pei, Data Mining: Concepts and Techniques, 2011

(2) Data Preparation and Feature Engineering for Machine Learning (4/24/2022 アクセス)

(3) Kaggle, Data Cleaning Challenge: Scale and Normalize Data (4/20/2022 アクセス)

スポンサーリンク
この記事が気にいったらシェアしてね!
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments