차원의 저주를 이해하는 데 어려움을 겪고 있습니다. 구체적으로, 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가 커짐에 따라 좋은 추정기에 필요한 훈련 포인트의 수가 기하 급수적으로 증가합니다.
편집 : 또한 물결표 ( ~
)가 해당 예에서 대략적인 것으로 간주됩니까? 아니면 파이썬 물결표 연산자?