機械学習の特徴量のスケーリング(MinMax/Standard)

プログラミング

機械学習における特徴量スケーリング

機械学習モデルの性能を向上させるために、特徴量スケーリングは極めて重要な前処理手法です。特に、距離ベースのアルゴリズム(例:k-NN、SVM)や勾配降下法を用いるアルゴリズム(例:線形回帰、ロジスティック回帰、ニューラルネットワーク)では、特徴量のスケールがモデルの学習に大きな影響を与えます。本稿では、代表的なスケーリング手法であるMin-MaxスケーリングとStandardスケーリングについて、その原理、利点、欠点、そして適用場面について解説します。

Min-Maxスケーリング (正規化)

Min-Maxスケーリングは、データを特定の範囲、一般的には0から1の間に収まるように変換する手法です。この変換は、以下の数式で表されます。

$$X_{scaled} = frac{X – X_{min}}{X_{max} – X_{min}}$$

ここで、

  • $X$は元の特徴量の値
  • $X_{min}$はその特徴量の最小値
  • $X_{max}$はその特徴量の最大値
  • $X_{scaled}$はスケーリング後の特徴量の値

となります。

Min-Maxスケーリングの利点

  • **データの範囲が固定される**: 変換後のデータは必ず0から1(あるいは指定した範囲)に収まるため、解釈が容易になる場合があります。
  • **アルゴリズムへの影響**: 距離計算に敏感なアルゴリズムや、重み係数が大きい特徴量に過度に影響されることを防ぎます。
  • **画像処理**: 画像のピクセル値を0から1の範囲に正規化する際によく用いられます。

Min-Maxスケーリングの欠点

  • **外れ値への影響**: $X_{min}$や$X_{max}$が外れ値によって極端に影響を受けると、他のデータ点が密集してしまう可能性があります。
  • **分布の歪み**: 元のデータの分布が非対称である場合、Min-Maxスケーリングによってもその歪みが解消されるわけではありません。

Min-Maxスケーリングの適用場面

  • ニューラルネットワークの入力層
  • 距離ベースのアルゴリズム(k-NN、SVMなど)
  • 画像データ

Standardスケーリング (標準化)

Standardスケーリングは、データの平均値を0、標準偏差を1に変換する手法です。この変換は、以下の数式で表されます。

$$X_{scaled} = frac{X – mu}{sigma}$$

ここで、

  • $X$は元の特徴量の値
  • $mu$はその特徴量の平均値
  • $sigma$はその特徴量の標準偏差
  • $X_{scaled}$はスケーリング後の特徴量の値

となります。

Standardスケーリングの利点

  • **外れ値への影響が少ない**: Min-Maxスケーリングと比較して、外れ値の影響を受けにくい傾向があります。
  • **データの分布を維持**: 元のデータの分布形状(正規分布に近い場合など)を比較的維持したまま、スケールを調整します。
  • **多くのアルゴリズムで有効**: 線形モデル、ロジスティック回帰、SVM、ニューラルネットワークなど、多くの機械学習アルゴリズムで良好な性能を発揮します。

Standardスケーリングの欠点

  • **データの範囲が固定されない**: 変換後のデータの範囲は、理論上無限に広がりうるため、Min-Maxスケーリングのような固定された範囲に収まることはありません。

Standardスケーリングの適用場面

  • 線形回帰、ロジスティック回帰
  • サポートベクターマシン (SVM)
  • 主成分分析 (PCA)
  • クラスタリングアルゴリズム (k-meansなど)
  • ニューラルネットワーク

その他のスケーリング手法

上記二つ以外にも、以下のようなスケーリング手法が存在します。

RobustScaler

RobustScalerは、外れ値の影響をさらに低減するために、中央値と四分位範囲 (IQR) を用いてスケーリングを行います。

$$X_{scaled} = frac{X – text{median}}{text{IQR}}$$

中央値とIQRは、外れ値に対して平均値や標準偏差よりも頑健であるため、データに外れ値が多く含まれる場合に有効です。

MaxAbsScaler

MaxAbsScalerは、各特徴量をその最大絶対値で割ることによって、データを[-1, 1]の範囲にスケーリングします。これは、データが既に0を中心に分布している場合に有効ですが、原点から遠い値を持つ外れ値の影響は受けやすいです。

$$X_{scaled} = frac{X}{|X|_{max}}$$

QuantileTransformer

QuantileTransformerは、データの分布を正規分布のような滑らかな分布に変換することを目指します。これは、データのノンパラメトリックな変換であり、元のデータの順序を維持しながら、より正規分布に近い形に変換します。これにより、外れ値の影響を軽減し、様々なモデルでより良い性能を引き出すことが期待できます。

スケーリング手法の選択基準

どのスケーリング手法を選択するかは、以下の要因に依存します。

  • **アルゴリズムの特性**: 使用する機械学習アルゴリズムが、特徴量のスケールにどの程度敏感か
  • **データの分布**: 元のデータの分布形状、外れ値の有無
  • **目的**: データの解釈性、特定の範囲への収束

一般的には、Standardスケーリングが最も汎用性が高く、多くのケースで良好な結果をもたらします。しかし、データに多くの外れ値が含まれる場合はRobustScalerが有効な選択肢となります。また、データの分布をより均一にしたい場合や、特定の範囲に厳密に収めたい場合は、Min-MaxスケーリングやQuantileTransformerを検討することができます。

注意点

  • **学習データとテストデータ**: スケーリングを行う際には、学習データで計算したパラメータ(平均値、標準偏差、最小値、最大値など)を用いて、学習データとテストデータの両方に同じ変換を適用する必要があります。テストデータで計算したパラメータを学習データに適用することは、情報漏洩にあたるため避けるべきです。
  • **欠損値**: スケーリング前に、欠損値の処理(補完など)を適切に行う必要があります。

まとめ

特徴量スケーリングは、機械学習モデルの性能を最適化するための不可欠な前処理ステップです。Min-Maxスケーリングはデータを固定範囲に正規化し、Standardスケーリングはデータを平均0、標準偏差1に標準化します。それぞれに利点と欠点があり、データの特性や使用するアルゴリズムに応じて適切な手法を選択することが重要です。外れ値への対応や、学習・テストデータ間での一貫性を保つことも、スケーリングを正しく適用する上で欠かせない要素となります。