4

私の質問は、私が少し読んだこのトピックについてです。基本的に私の理解では、高次元ではすべての点が互いに非常に接近することになります。

私が持っている疑問は、これが通常の方法(たとえばユークリッド)で距離を計算することが有効であることを意味するかどうかです。それがまだ有効である場合、これは、高次元でベクトルを比較するときに、この 3 番目のベクトルが完全に無関係である場合でも、最も類似した 2 つは 3 番目のベクトルとあまり変わらないことを意味します。

これは正しいです?この場合、一致しているかどうかをどのように判断できますか?

4

2 に答える 2

3

基本的に距離測定は依然として正確ですが、ノイズの多い「現実世界」のデータがあると意味がなくなります。

ここで説明する効果は、1 つの次元の 2 点間の大きな距離が、他のすべての次元の小さな距離によってすぐに覆い隠されるということです。そのため、最終的にすべてのポイントがある程度同じ距離になります。これについては、次のような良い例があります。

各次元の値に基づいてデータを分類したいとします。各次元を 1 回分割するとだけ言っておきます (範囲は 0..1 です)。[0, 0.5) の値は正、[0.5, 1] の値は負です。このルールでは、3 次元で、スペースの 12.5% がカバーされます。5 次元では、わずか 3.1% です。10 次元では 0.1% 未満です。

したがって、各次元では、全体の値の範囲の半分を許可します! これはかなりです。しかし、それらはすべて総空間の 0.1% に収まります。これらのデータ ポイント間の違いは、各次元で非常に大きくなりますが、空間全体では無視できます。

さらに進んで、各次元で範囲の 10% だけをカットすると言うことができます。したがって、[0、0.9) の値を許可します。それでも、10 次元でカバーされる空間全体の 35% 未満になります。50 次元では 0.5% です。ご覧のとおり、各次元の広範囲のデータが検索スペースの非常に小さな部分に詰め込まれています。

そのため、基本的に情報量の少ない軸の違いを無視する次元削減が必要です。

于 2010-05-16T13:08:17.787 に答える