데이터 세트의 N 항목 각각에 대해 상위 20 개의 비슷한 항목을 계산하고 싶습니다. 각 항목은 M 크기의 기능을 사용하여 표시됩니다. 따라서 데이터 크기는 N_items X M_features입니다.NearestNeighbors (SKlearn)가 n_neighbors가 총 항목 수보다 적은 경우 왜 시간이 더 걸립니까?
n_neighbors
(기본값은 5)을 지정하지 않으면 kneighbors
함수에 많은 시간이 걸립니다. 그러나 n_neighbors = N_items
을 지정하면 결과가 거의 즉각적으로 나타납니다.
즉 NN_object = NearestNeighbors()
은 많은 시간을 들여 kneighbors
을 찾지 만 NN_object = NearestNeighbors(n_neighbors=N_items)
은 결과를 상당히 빠르게 나타냅니다.
누구나 장면 뒤에서 정확히 무슨 일이 일어날 지 설명 할 수 있습니까?
PS : N_items
내 경우는 ~ 50K 및 M_features
이 ~ 10K입니다. 첫 번째 경우에 n_neigbors=n_samples
를 제공 할 경우, 각 지점에 대한 거리 메트릭 계산의 총 수는 1입니다 조합C(n_samples, n_neigbors)
입니다하지만 당신은 다음 n_neigbors=21
을 수행 할 때 계산의 수가 많은 주름을 증가하기 때문에
기다려주세요. 'len (features)'는 * 정확히 * 무엇입니까? – gsamaras
https://github.com/scikit-learn/scikit-learn/blob/14031f6/sklearn/neighbors/base.py#L269 k- 이웃 기능 링크 –