🗿
データ分析 スケーリング(標準化)
スケーリングの基準
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