Я пытаюсь реализовать алгоритм k-ближайшего соседа, используя python. В итоге я получил следующий код. Однако я изо всех сил пытаюсь найти индекс элементов, которые являются ближайшими соседями. Следующая функция вернет матрицу расстояний. Однако мне нужно получить индексы этих соседей в features_train
(входная матрица алгоритма).
def find_kNN(k, feature_matrix, query_house):
alldistances = np.sort(compute_distances(feature_matrix, query_house))
dist2kNN = alldistances[0:k+1]
for i in range(k,len(feature_matrix)):
dist = alldistances[i]
j = 0
#if there is closer neighbor
if dist < dist2kNN[k]:
#insert this new neighbor
for d in range(0, k):
if dist > dist2kNN[d]:
j = d + 1
dist2kNN = np.insert(dist2kNN, j, dist)
dist2kNN = dist2kNN[0: len(dist2kNN) - 1]
return dist2kNN
print find_kNN(4, features_train, features_test[2])
Выход:
[ 0.0028605 0.00322584 0.00350216 0.00359315 0.00391858]
Может ли кто-нибудь помочь мне идентифицировать эти ближайшие предметы в features_train
?
query_house
? - person MMF   schedule 18.10.2016features_train
содержит все остальные предметы дома - person renakre   schedule 18.10.2016sklearn
? - person MMF   schedule 18.10.2016