차원의 저주 : kNN 분류기


11

Kevin Murphy의 저서 : Machine Learning-A Probabilistic Perspective를 읽고 있습니다. 첫 번째 장에서 저자는 차원의 저주를 설명하고 있으며 이해하지 못하는 부분이 있습니다. 예를 들어 저자는 다음과 같이 말합니다.

입력이 D 차원 단위 큐브를 따라 균일하게 분포되어 있다고 가정하십시오. 원하는 분수를 포함 할 때까지 x 주위에 하이퍼 큐브를 성장시켜 클래스 레이블의 밀도를 추정한다고 가정하십시오.f데이터 포인트의. 이 큐브의 예상 가장자리 길이는eD(f)=f1D.

머리를 get 수없는 마지막 공식입니다. 가장자리 길이보다 점의 10 %가 각 치수에서 0.1이어야한다고 가정하고 싶습니까? 나는 내 추론이 잘못되었다는 것을 알고 있지만 그 이유를 이해할 수 없습니다.


6
우선 상황을 2 차원으로 그려보십시오. 1m * 1m 용지를 가지고 있고 왼쪽 하단 모서리에서 0.1m * 0.1m 정사각형을 잘라 내면 용지의 10 분의 1을 제거 하지 않고 100 분1 만 제거했습니다 .
David Zhang

답변:


13

그것은 정확하게 높은 치수에서 거리의 예상치 못한 행동입니다. 1 차원의 경우 간격이 [0, 1]입니다. 포인트의 10 %는 0.1 길이의 세그먼트에 있습니다. 그러나 형상 공간의 치수가 증가하면 어떻게됩니까?

이 표현은 5 차원에 대해 10 %의 포인트를 가지려면 큐브의 길이가 0.63, 10 차원에 0.79, 0.98에 100 차원이 필요하다는 것을 나타냅니다.

보시다시피, 치수를 늘리려면 같은 양의 포인트를 얻으려면 더 멀리 떨어져 있어야합니다. 더욱이, 차원의 수가 증가함에 따라 대부분의 점이 큐브의 경계에 있다고 알려줍니다. 예상치 못한 것입니다.


4

주목해야 할 것은 표현이

eD(f)=f1D

처음에는 정말 가파 릅니다. 이는 볼륨의 특정 부분을 포함해야하는 가장자리 크기가 특히 처음에 크게 증가 함을 의미합니다. 즉, 필요한 가장자리는 엄청나게 커질 것입니다D 증가합니다.

이것을 더욱 명확하게하기 위해 머피가 보여주는 줄거리를 상기하십시오.

여기에 이미지 설명을 입력하십시오

눈치 채면 D>1기울기가 매우 크므로 처음에 기능이 가파르게 커집니다. 당신이 파생물을 가져 가면 더 잘 이해할 수 있습니다.eD(f):

eD(f)=1Df1D1=1Df1DD

우리는 치수 (정수 값)를 늘리는 것을 고려하고 있기 때문에 정수 값 만 신경 쓰입니다. D>1. 이것은1D<0. 다음과 같이 가장자리의 표현을 고려하십시오.

eD(f)=1D(f1D)1D

우리가 올리는 통지 f0보다 작은 거듭 제곱 (즉 음수). 우리가 숫자를 음의 거듭 제곱으로 올릴 때 우리는 어느 시점에서 역수를한다.x1=1x). 이미 실제로 작은 숫자로 역수를하는 것f<1 우리는 KNN을 수행하기 때문에 볼륨의 일부만 고려하고 있기 때문에 k 총계에서 가장 가까운 데이터 포인트 N)는 숫자가 "많이 자랍니다"를 의미합니다. 따라서 우리는 원하는 행동을 얻습니다.D 전력이 더욱 부정적으로 증가하므로 필요한 모서리는 크기에 따라 크게 증가합니다. D 지수를 증가시킵니다.

(그것을주의해라 f1D 부서에 비해 기하 급수적으로 증가 1D 빨리 중요하지 않습니다).


2

예, 단위 큐브가 있거나 단위 라인이 있고 데이터가 균일하게 분포되어 있으면 데이터의 10 %를 캡처하려면 길이가 0.1이되어야합니다. 이제 차원을 늘리면 D가 증가하여 전력이 감소하고 f가 1보다 작 으면 D가 증가하여 D가 무한대가되면 모든 큐브를 캡처해야합니다 (e = 1).


0

나는 kNN 거리가 더 큰 역할을한다고 생각합니다. (하이퍼) 큐브에 발생하는 것은 점 사이의 거리에 발생하는 것과 유사합니다. 치수 수를 늘리면 가장 가까운 거리와 평균 거리 사이의 비율이 증가합니다. 즉, 가장 가까운 점이 평균 점만큼 멀어지고 평균 점보다 약간 더 예측력이 있습니다. 기사는 그것을 잘 설명합니다

Joel Grus는 Scratch의 Data Science에서이 문제를 잘 설명합니다. 이 책에서 그는 치수 수가 증가함에 따라 치수 공간에서 두 점 사이의 평균 및 최소 거리를 계산합니다. 그는 0에서 100 사이의 차원 수로 점 사이의 10,000 거리를 계산했습니다. 그런 다음 두 점 사이의 평균 및 최소 거리와 평균 거리에 대한 가장 가까운 거리의 비율 (Distance_Closest / Distance_Average)을 플로팅합니다. .

이 그림에서 Joel은 가장 가까운 거리와 평균 거리의 비율이 0 차원에서 0에서 100 차원에서 ~ 0.8까지 증가한 것으로 나타났습니다. 그리고 이것은 k- 최근 접 이웃 알고리즘을 사용할 때 차원의 근본적인 도전을 보여줍니다. 차원의 수가 증가하고 평균 거리에 대한 가장 가까운 거리의 비율이 1에 가까워지면 알고리즘의 예측력이 감소합니다. 가장 가까운 점이 평균 점만큼 멀어지면 평균 점보다 약간 더 예측력이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.