차원의 기계 학습 저주가 설명 되었습니까?


14

차원의 저주를 이해하는 데 어려움을 겪고 있습니다. 구체적으로, scikit-learn파이썬 에서 튜토리얼 을 수행하는 동안 그것을 발견했습니다 . 누군가 아래를 더 간단한 방법으로 설명해 주시겠습니까? 가장 오랜 시간 동안 이해하려고했지만 효율적인 KNN 추정기를 달성하기 위해 많은 훈련 예를 계산 한 결과를 이해할 수 없습니까?

설명은 다음과 같습니다.

추정기가 효과적이기 위해서는 주변 지점 사이의 거리가 문제 d에 따라 어떤 값 d보다 작아야합니다. 일차원에서 평균 n ~ 1 / d 포인트가 필요합니다. 상기 KNN 예의 맥락에서, 데이터가 0 내지 1 범위의 값을 갖는 n 개의 트레이닝 관측치만을 갖는 하나의 특징에 의해 기술된다면, 새로운 데이터는 1 / n보다 멀지 않을 것이다. 따라서 클래스 간 기능 변동의 규모에 비해 1 / n이 작아지면 가장 가까운 이웃 결정 규칙이 효율적입니다.

피처 수가 p이면 이제 n ~ 1 / d ^ p 포인트가 필요합니다. 한 차원에 10 개의 점이 필요하다고 가정 해 봅시다. 이제 [0, 1] 공간을 만들기 위해 p 차원에 10 ^ p 점이 필요합니다. p가 커짐에 따라 좋은 추정기에 필요한 훈련 포인트의 수가 기하 급수적으로 증가합니다.

여기 링크

편집 : 또한 물결표 ( ~)가 해당 예에서 대략적인 것으로 간주됩니까? 아니면 파이썬 물결표 연산자?


2
물결표는 "비례"를 의미합니다
reseter

@mbatchkarov 하 감사합니다. 너무 다른 결론에 대략적으로 비례하는 lol

답변:


11

그 단락을 번역 :

데이터 포인트를 설명하는 일련의 기능이 있습니다. 아마도 당신은 날씨를보고있을 것입니다. 이러한 기능 세트에는 온도, 습도, 시간 등이 포함될 수 있습니다. 따라서 각 데이터 포인트에는 하나의 기능이 있거나 (온도 만보고있는 경우) 2 개의 기능이있을 수 있습니다 (온도를보고있는 경우) 그리고 습도) 등등. 이 단락의 말은 데이터가 가지고있는 차원의 수 (데이터의 수)에 따라 추정기를 만드는 것이 더 어렵다는 것입니다. 데이터의 한 가지 특징 또는 1 차원 데이터가있는 경우이 데이터를 그래프로 이동하면 선 그래프가 표시되고 0-50 도의 온도를 나타내는 선 그래프를 상상하기 만하면됩니다. 각 데이터 포인트 이전의 임의의 50 포인트는 다른 데이터 포인트와 약 1 도입니다. 이제하자 습도와 온도에 대해 말하면서 2 차원에 대해 생각하면 이제 모든 점이 서로 "d"단위 내에 있도록 d를 찾는 것이 더 까다 롭습니다. 온도가 여전히 0-50 사이이지만 습도가 0-100 % 사이라고 상상해보십시오. 서로 1 또는 2 이내의 모든 포인트를 얻는 데 몇 개의 랜덤 포인트가 필요합니까? 이제 100 * 50 또는 ~ 5,000입니다! 이제 3 차원 등을 상상해보십시오. 모든 점이 다른 점의 d 내에 있도록하려면 더 많은 점이 필요합니다. 인생을 편하게하려면 "d"가 1이라고 가정하고 어떤 일이 일어나는지보십시오. 희망이 도움이됩니다! 서로 1 또는 2 이내의 모든 포인트를 얻는 데 몇 개의 랜덤 포인트가 필요합니까? 이제 100 * 50 또는 ~ 5,000입니다! 이제 3 차원 등을 상상해보십시오. 모든 점이 다른 점의 d 내에 있도록하려면 더 많은 점이 필요합니다. 인생을 편하게하려면 "d"가 1이라고 가정하고 어떤 일이 일어나는지보십시오. 희망이 도움이됩니다! 서로 1 또는 2 이내의 모든 포인트를 얻는 데 몇 개의 랜덤 포인트가 필요합니까? 이제 100 * 50 또는 ~ 5,000입니다! 이제 3 차원 등을 상상해보십시오. 모든 점이 다른 점의 d 내에 있도록하려면 더 많은 점이 필요합니다. 인생을 편하게하려면 "d"가 1이라고 가정하고 어떤 일이 일어나는지보십시오. 희망이 도움이됩니다!


2
좋은 설명이지만 그들이 제공 한 방정식은 어떻습니까? 1 특징 예에서 추정기가 1도 떨어져 있고 (즉 d = 1) 원하는 방정식 n~1/d은 n이 대략 1이어야 함을 의미합니다. 이해가되지 않습니까?

그들은 지형지 물이 0-1의 범위 (광산의 범위가 0-50의 범위)를 가지면 1 / d 포인트가 서로 다르지 않다고 말하고 있습니다. 1이 "d"인 약 50/1 포인트가 필요하기 때문에 내 예제에서 작동합니다. 이 방정식을 입력하는 것이 혼란 스럽지만 도움이 될 것 같습니다

12

matty-d 이미 좋은 답변을 제공했지만 Quora 사용자 Kevin Lacker 로부터이 문제를 똑같이 설명하는 다른 답변을 찾았습니다.

100 야드 길이의 직선이 있고 어딘가에 페니를 떨어 뜨렸다 고 가정 해 봅시다. 찾기가 너무 어렵지 않습니다. 줄을 따라 걸 으면 2 분이 걸립니다.

이제 양쪽에 100 야드의 정사각형이 있고 어딘가에 페니를 떨어 뜨렸다 고 가정 해 봅시다. 두 개의 풋볼 필드를 검색하는 것과 같이 매우 어려울 것입니다. 며칠이 걸릴 수 있습니다.

이제 100 야드의 큐브입니다. 축구 경기장 크기의 30 층 건물을 검색하는 것과 같습니다. 어.

더 많은 치수를 가질 수록 공간을 검색하기가 훨씬 어려워집니다. 수학 공식에서 방금 언급 한 경우 모두 "폭"이 같으므로 직관적으로 알 수 없습니다. 이것이 차원의 저주입니다. 직관적이지 않고 유용하지만 단순하기 때문에 이름이 붙습니다.


-1

이 예제는 문제에 대한 직관을 제공 할 수 있지만 실제로는 확실한 증거는 아닙니다. "좋은"공간 범위를 확보하기 위해 많은 샘플이 필요한 예일뿐입니다. 정규 그리드보다 훨씬 더 효율적인 커버리지가있을 수 있습니다 (실제로 2D의 육각형이있을 수 있습니다). 차원의 저주가 여전히 또 다른 문제입니다. 실제로 특정 기능 공간에서는 이러한 명백한 문제를 피할 수있는 방법이 있습니다.

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