🗿

データ分析 スケーリング(標準化)

2024/09/22に公開

スケーリングの基準

1.データの大きさが違うとき

  • 変数A: 0〜10の範囲
  • 変数B: 0〜100の範囲

このケースでは、変数Bの範囲がAに比べて10倍大きいため、変数Bが分析結果に過度に影響を与えることになります。
特に距離ベースのアルゴリズムでは、変数Bの値が大きいほど、変数Aよりも重要視されてしまいます。
なぜ標準化が必要?
変数間のバランスを取るため。スケーリングを行って、両方の変数が同じスケールにそろえられることで、どちらか一方の変数が結果に不均衡に影響しないようにします。

2.データの始点が違うとき

  • 変数A: 0〜10の範囲
  • 変数B: 1〜11の範囲

このケースでは、変数Aと変数Bの範囲が同じように見えますが、始点が異なることで、2つの変数が異なる基準で計測されたと見なされます。
始点が異なると、データの特徴が変わってしまい、正しい比較ができません。
なぜ標準化が必要?
データの基準を揃えるため。始点が異なる場合でも、標準化により平均を0に揃え、標準偏差を1にすることで、両方の変数が同じ基準で比較できるようになります。

スケーリングの方法

スケーリングの最も一般的な方法は次の2つになります

  • 標準化(Standardization): 平均を0、標準偏差を1にする方法
  • 正規化(Normalization): 値を0から1の範囲にスケーリングする方法

標準化によるスケーリング

df = pd.read_csv('xxxxx')

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
x_scaled = scaler.fit_transform(df)

Discussion