KNNでデータをスケーリングする必要があるのはなぜですか


15

Kの最近傍を使用するときにデータを正規化する必要がある理由を誰かに説明してください。

これを調べてみましたが、まだ理解できないようです。

私は次のリンクを見つけました:

https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715

しかし、この説明では、機能の1つの範囲が広いと予測に影響する理由がわかりません。


主題の観点から正規化を正当化する必要があると思います。基本的に、重要なのは、ポイント間の距離を定義するものです。距離の主題の定義を反映する、距離の便利な算術定義を見つける必要があります。私の限られた経験では、主題の考慮事項に基づいて、すべてではありませんがいくつかの方向で正規化しました。
リチャードハーディ

1
有益な例については、stats.stackexchange.com / questions / 140711をご覧ください。
whuber

回答:


26

k最近傍アルゴリズムは、特定のテストポイントの 'k'最近傍サンプルのクラスメンバーシップに基づく多数決に依存しています。サンプルの近さは通常、ユークリッド距離に基づいています。

単純な2クラス分類問題について考えてみましょう。ここでは、クラス1サンプルが選択され(黒)、10個の最近傍(緑で塗りつぶされています)が選択されます。最初の図では、データは正規化されていませんが、2番目の図では正規化されています。

正規化されていないデータ 正規化されたデータ

バツ1

正規化はこの問題を解決します!


1
この答えは正確に正しいのですが、歪みが関係しているため、イラストが誤解を招く恐れがあります。ポイントは、それぞれの2つの軸が同じ縮尺になるように、両方を描画することでより適切に作成できます。
whuber

1
両方の図ですべてのデータポイントを同じスケールに合わせるのは難しいと感じました。したがって、軸のスケールが異なることをメモで言及しました。
ケダル

1
その難しさが実際にあなたの応答のポイントです!それを克服する1つの方法は、このような極端なスケールを使用しないことです。1000:1の違いではなく、スケールの5:1の違いが、あなたのポイントをうまく示します。別の方法は、絵を忠実に描くことです:上の散布図は、点の垂直線のように見えます。
whuber

2
@whuber、あなたの最初のコメントを誤解しました。プロットを修正しました。うまくいけばうまくいきます!
ケダル

1
@Undertherainbowそれは正しいです!
ケダル

5

データセット(m個の「例」x n個の「特徴」)があり、1つの特徴次元以外のすべての値が厳密に0〜1であり、単一の特徴次元の値が-1000000〜1000000の範囲であるとします。 「例」のペア間では、0から1の範囲の特徴次元の値は情報価値がなくなり、アルゴリズムは値が実質的に大きい単一の次元に本質的に依存します。ユークリッド距離の計算例をいくつか試してみると、スケールが最近傍の計算にどのように影響するかを理解できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.