スポンサーリンク

データの標準化と正規化について分かりやすくまとめ

記事内に広告が含まれています。

データ分析や機械学習では、データの前処理が重要なステップです。

その中でも「標準化」と「正規化」はよく使われる手法ですが、混同されがちです。

本記事では、それぞれの意味、目的、具体的な方法、そして使い分けについてまとめます。

スポンサーリンク

データの標準化(Standardization)

定義

標準化とは、データの平均を0、分散を1にスケーリングする処理です。具体的には以下の数式で計算します。

$$z = \frac{x – \mu}{\sigma}$$​

  • \(x\): 元のデータ
  • \(\mu\): データ全体の平均
  • \(\sigma\): データ全体の標準偏差

目的

  • スケールの統一
    異なる単位やスケールを持つ特徴量を比較可能にする。
  • モデルの収束性向上
    勾配降下法を使うアルゴリズムでは、標準化により学習速度が向上します。

使用例

  • 機械学習モデル(線形回帰、SVM、ロジスティック回帰など)
  • データの分布が正規分布に近い場合に効果的

実装例(Python)

from sklearn.preprocessing import StandardScaler
import numpy as np

data = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)

print(standardized_data)
スポンサーリンク

データの正規化(Normalization)

定義

正規化とは、データを一定の範囲(通常は[0, 1])にスケーリングする処理です。以下の数式で計算します。

$$⁡x_{\text{norm}} = \frac{x – x_{\min}}{x_{\max} – x_{\min}}$$​​

  • \(⁡x_{\min}\)​: データの最小値
  • \(x_{\max}\)​: データの最大値

目的

  • 範囲の統一
    データを固定範囲に収めることで、スケール依存のアルゴリズムで安定性を向上させる。
  • 解釈の容易化
    特徴量間での比較が直感的になる。

使用例

  • クラスタリング(K-meansなど)
  • ニューラルネットワーク(特に入力層での使用)
  • データの分布が正規分布に従わない場合に適用

実装例(Python)

from sklearn.preprocessing import MinMaxScaler
import numpy as np

data = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(data)

print(normalized_data)

標準化と正規化の違い

特徴標準化正規化
定義平均0、分散1にスケーリングデータを[0, 1]にスケーリング
目的分布の形状を保つデータ範囲の統一
使用場面勾配降下法を使用するアルゴリズム範囲に敏感なアルゴリズム
適用対象特徴量単位データセット全体

使い分けのポイント

  • 標準化を選ぶ場合
    データが異なる単位を持つ場合や、アルゴリズムが距離や勾配を利用する場合に適しています。
    例: SVM, PCA, ロジスティック回帰
  • 正規化を選ぶ場合
    データ範囲が重要な場合や、距離計算に敏感なアルゴリズムを使用する場合に適しています。
    例: K-means, ニューラルネットワーク

注意点と課題

標準化の注意点

異常値(アウトライアー)に敏感です。

必要に応じて異常値を除去するか、ロバスト標準化を検討してください。

正規化の注意点

データがスパース(疎行列)の場合、正規化によって分布が偏る可能性があります。

まとめ

  • 標準化
    平均0、分散1に変換し、分布を均一化。
  • 正規化
    データを固定範囲に収めてスケールを統一。

データの前処理において「標準化」と「正規化」を正しく理解し、使い分けることが重要です。

タイトルとURLをコピーしました