При использовании k ближайших соседей, есть ли способ получить "соседей", которые используются? - PullRequest
0 голосов
/ 30 октября 2019

Я хотел бы найти способ определить, какие соседи фактически используются в моем алгоритме knn, чтобы я мог глубже погрузиться в строки данных, которые похожи на мои функции.

Вот пример набора данных, который я разбил на обучающий набор и набор тестов для модели прогнозирования:

    Player       PER    VORP    WS
Fabricio Oberto 11.9    1.0    4.1
Eddie Johnson   16.5    1.7    4.8
Tim Legler      15.9    2.0    6.8
Ersan Ilyasova  14.3    0.7    3.8
Kevin Love      25.4    3.5    10.0
Tim Hardaway    20.6    5.1    11.7
Frank Brickowsk 8.6    -0.2    1.6

    etc....

А вот пример кода моего алгоритма knn:

features = ['PER','VORP']
knn = KNeighborsRegressor(n_neighbors=5, algorithm='brute')
knn.fit(train[features], train['WS'])
predictions = knn.predict(test[features])

Теперь я знаю, что алгоритм будет выполнять итерацию по каждой строке и делать каждое целевое предсказание на основе 5 ближайших соседей, которые исходят из указанных мной целевых объектов.

Я хотел бы выяснить, ЧТО 5 n_neighbors фактически использовалось при определении моей целевой функции? В этом случае - какие игроки фактически использовались при определении цели?

Есть ли способ получить список из 5 соседей (или игроков), которые использовались в анализе для каждой строки?

1 Ответ

0 голосов
/ 30 октября 2019

knn.kneighbors вернет вам массив соответствующих ближайших соседей.

...