尺度をそろえると、距離が公平になる
年齢[歳]と年収[万円]では数値の大きさが桁違いです。距離を測ると年収ばかりが効いてしまい、k-NN の境界は横しま模様(年収だけで決まる)になります。下のボタンで標準化や正規化に切り替えると、右のグラフの軸目盛りと境界が変わり、年齢もきちんと使われるようになります。
| 特徴量 | 平均 | 標準偏差 | 最小 | 最大 |
|---|---|---|---|---|
| 年齢 | – | – | – | – |
| 年収 | – | – | – | – |
元データのままです。年収の数値だけが大きく、距離をほぼ独占しています。
特徴量ごとに尺度がちがうと、数値の大きい特徴量が距離を支配してしまい、他の特徴量が無視されます。スケーリングで尺度をそろえると、すべての特徴量を公平に扱えます。
標準化:平均 0・標準偏差 1 にする。迷ったらこちら。
正規化(Min-Max):最小 0・最大 1 にする。外れ値に弱い。
※ 実務では \(\mu\), \(\sigma\), 最小/最大は訓練データだけから求め、テストデータには同じ変換を当てます。