正規化の目的は、特徴を同様のスケールに変換することです。これにより、モデルのパフォーマンスとトレーニングの安定性が向上します。
正規化の手法の概要
次の 4 つの一般的な正規化手法が役に立つ可能性があります。
- 特定の範囲へのスケーリング
- クリッピング
- 対数スケーリング
- Z スコア
以下のグラフは、各正規化手法が左側の元の特徴(価格)の分布に及ぼす影響を示しています。グラフは、自動車データセット セットの UCI Machine Learning Repository の一部である 1985 Ward' Automotive Yearbook のデータセットに基づいています。
図 1. 正規化の手法の概要
特定の範囲にスケーリングする
MLCC の再現率: スケーリングでは、浮動小数点特徴値を自然な範囲(たとえば、100 ~ 900)から標準範囲(通常は 0 と 1(場合によっては -1 ~+1))に変換します。範囲にスケーリングするには、次のシンプルな数式を使用します。
\[ x' = (x - x_{min}) / (x_{max} - x_{min}) \]
次の両方の条件が満たされる場合は、範囲へのスケーリングをおすすめします。
- 外れ値が少ないか、まったくない状態で、データのおおよその上限と下限がわかっている場合。
- データはその範囲にほぼ均一に分散されます。
たとえば、年齢が挙げられます。ほとんどの年齢の値は 0 ~ 90 であり、範囲のどの部分にもかなりの数のユーザーがいます。
対照的に、収入に関するスケーリングは使用しません。これは、非常に高い所得を持つ人はほとんどいないためです。収入の線形目次の上限は非常に高く、ほとんどの人はスケールのごく一部に圧迫されるでしょう。
対象物のクリッピング
データセットに極端な外れ値が含まれている場合は、特徴のクリッピングを試みることができます。これにより、特定の値を超える(または低い)すべての特徴値が固定値に制限される場合があります。たとえば、40 を超えるすべての温度値をちょうど 40 にクリップできます。
他のクリッピングの前後に特徴のクリッピングを適用できます。
数式: 外れ値を回避するために最小値 / 最大値を設定する。
図 2. 未加工のディストリビューションとそのクリップされたバージョンの比較。
もう 1 つのシンプルなクリッピング戦略は、z スコアで +-Nα にクリッピングすることです(たとえば、+-3α に制限)。α は標準偏差です。
ログのスケーリング
ログのスケーリングでは、値のログを計算して、広い範囲を狭い範囲に圧縮します。
\[ x' = log(x) \]
ログのスケーリングは、少数の値に多くのポイントがある一方で、他のほとんどの値にはポイントが少ない場合に便利です。このデータ分布は、べき乗の分布と呼ばれます。映画の評価が良い例です。下のグラフでは、ほとんどの映画の評価はほとんどありませんが(テールのデータ)、いくつかの評価は多くの評価(ヘッドのデータ)が付けられています。ログのスケーリングにより分布が変化し、線形モデルのパフォーマンス向上に役立ちます。
図 3. 未加工の分布をログと比較します。
Z スコア
Z スコアはスケーリングのバリエーションの 1 つで、平均値から離れている標準偏差の数を表します。Z-score を使用して、特徴の分布が平均 = 0、std = 1 であることを確認します。いくつかの外れ値があるものの、クリッピングが必要なほど極端ではない場合に便利です。
ポイント x の z スコアを計算する数式は次のとおりです。
\[ x' = (x - μ) / σ \]
図 4. 未加工の分布と z スコアの分布を比較します。
Z スコアは、約 40,000 の範囲の生の値をおよそ -1 ~+4 の範囲に圧縮します。
外れ値が本当に極端かどうかわからないとします。 この場合、モデルに学習させたくない特徴値がある場合を除き、z スコアから始めます。たとえば、測定エラーや異常の結果です。
まとめ
正規化の手法 | 数式 | 使用する場面 |
---|---|---|
線形スケーリング | $$ x' = (x - x_{min}) / (x_{max} - x_{min}) $$ | 対象物が一定の範囲にほぼ均等に分布している場合。 |
クリッピング | x > の場合、x'、max = x < min の場合、x'、= min | 特徴に極端な外れ値が含まれている場合。 |
ログのスケーリング | x' = log(x) | 電力権の法則に適合する機能の場合。 |
Z スコア | x'、=(x - μ)/ α | 特徴の分布に極端な外れ値が含まれていない場合。 |