k-NN 계산 복잡성


18

순진한 검색 방법 (kd 트리 또는 이와 유사한 것 없음) 을 사용하는 k -NN 알고리즘 의 시간 복잡성은 무엇입니까 ?

하이퍼 파라미터 k 도 고려하여 시간 복잡성에 관심이 있습니다 . 나는 모순 된 답변을 찾았습니다.

  1. O (nd + kn), 여기서 n 은 학습 세트의 카디널리티이고 d 는 각 샘플의 차원입니다. [1]

  2. O (ndk). 여기서 다시 n 은 훈련 세트의 카디널리티이고 d 는 각 샘플의 차원입니다. [2]

[1] http://www.csd.uwo.ca/courses/CS9840a/Lecture2_knn.pdf (Pag. 18/20)

[2] http://www.cs.haifa.ac.il/~rita/ml_course/lectures/KNN.pdf (Pag. 18/31)

답변:


20

가 고정되어 있다고 가정하면 (두 링크의 강의가 수행하는 것처럼) 알고리즘 선택에 따라 계산에 O ( n d + k n ) 런타임 또는 O ( n d k ) 런타임 이 필요한지 여부가 결정 됩니다.케이영형(+케이)영형(케이)

먼저, 런타임 알고리즘을 고려해 봅시다 :영형(+케이)

  • 훈련 세트의 모든 관측치 i 에 대해 을 초기화합니다.에스이자형이자형이자형나는=0나는
  • 각 트레이닝 세트의 관측 , 컴퓨팅 D S t I , 트레이닝 세트의 관측으로 새로운 관측의 거리 내가나는나는에스나는나는
  • 들면 하기 케이 : 루프 모든 트레이닝 세트의 관측을 통해 색인 선택 I를 최소로 D S t의 I의 값을하고있는 것은 s의 E L E C t E D = 0 . 설정하여 이러한 관찰을 선택 S E L E C t E D = 1 .제이=1케이나는나는에스나는에스이자형이자형이자형나는=0에스이자형이자형이자형나는=1
  • 선택된 인덱스를 반환케이

각 거리 계산에는 런타임이 필요하므로 두 번째 단계에는 O ( n d ) 런타임이 필요 합니다. 세 번째 단계에서 각 반복 처리를 위해, 우리는 수행 O ( N ) 단계는 전체 요구하므로, 트레이닝 세트의 관측을 통해 반복하여 작업을 O ( N K ) 일. 첫 번째와 네 번째 단계는 O ( n ) 작업 만 필요 하므로 O ( n d + k n ) 런타임을 얻습니다 .영형()영형()영형()O(nk)O(n)O(nd+kn)

이제 런타임 알고리즘을 생각해 봅시다 :영형(케이)

  • 훈련 세트의 모든 관측치 i 에 대해 을 초기화합니다.에스이자형이자형이자형나는=0나는
  • 들면 하기 k는 모든 트레이닝 세트의 관측을 통해 루프와 거리 계산 : D를 선택된 트레이닝 세트 관측하고 새로운 관측 사이. s e l e c t e d i = 0 인 d 값 이 가장 작은 인덱스 i 를 선택하십시오 . 설정하여 이러한 관찰을 선택 S E L E C t E D = 1 .제이=1케이나는에스이자형이자형이자형나는=0에스이자형이자형이자형나는=1
  • 선택된 인덱스를 반환케이

두 번째 단계에서 각 반복에 대해 새 관측치와 각 훈련 세트 관측치 사이의 거리를 계산하여 반복에 작업이 필요하므로 O ( n d k )가 전체적으로 작동합니다.영형()영형(케이)

두 알고리즘의 차이점은 첫 번째 알고리즘은 거리를 사전 계산하고 저장하고 ( 추가 메모리 필요) 두 번째 알고리즘은 그렇지 않다는 것입니다. 그러나, 우리는 이미 필요한 전체 트레이닝 세트를 저장 주어진 O ( N D ) 뿐만 아니라,은, 메모리 E L E는 C t의 전자의 개발 이 요구되는 벡터 O ( N ) 스토리지 두 알고리즘 저장 점근 인 같은. 결과적으로 k > 1 의 더 나은 점근 적 런타임 은 첫 번째 알고리즘을 더 매력적으로 만듭니다.영형()영형()selectedO(n)k>1

알고리즘 개선을 사용하여 런타임 을 얻을 수 있다는 점은 주목할 가치가 있습니다 .O(nd)

  • 각 트레이닝 세트의 관측 , 컴퓨팅 D S t I , 트레이닝 세트의 관측으로 새로운 관측의 거리 내가idistii
  • quickselect 알고리즘을 컴퓨터 장치 의 최소 거리 O를 ( N ) 런타임kthO(n)
  • 계산 된 최단 거리 보다 크지 않은 모든 지수를 반환kth

이 접근법은 효율적인 접근법 찾기 위해 존재한다는 사실을 이용한다 정렬되지 않은 배열을 작은 값.kth


1
좋은 답변과 특히 사용에 대한 조언을 좋아합니다 quickselect.
usεr11852는 Reinstate Monic

하나의 질문 : 세 번째 옵션의 경우 예측을하기 위해 k- 최근 접 이웃 중에서 가장 일반적인 레이블을 계산해야하기 때문에 시간 복잡성이 O (nd + k) 여야한다고 생각합니다.
Daniel López

knO(nd+k) is the same as O(nd).
josliber

Last time I bother you: trying to determine the computational complexity of a modified version of k-NN I am working on, I get the following: O(nd+nd/p) Where by definition n, d and p are integers greater than zero. Can I simplify that to O(nd)?
Daniel López

@Daniel Yes, in that case O(nd)공장.
josliber 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.