python - 当使用k个最近邻居时,有没有办法检索所使用的 "neighbors"?

标签 python dataframe machine-learning prediction knn

我想找到一种方法来确定我的 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])

现在,我知道该算法将迭代每一行,并根据来 self 指定的目标特征的 5 个最近邻居进行每个目标预测。

我想知道哪 5 个 n_neighbors 实际用于确定我的目标特征?在这种情况下 - 哪些球员实际上被用来确定目标?

有没有办法获取每行分析中​​使用的 5 个邻居(又名玩家)的列表?

最佳答案

knn.kneighbors 将返回相应最近邻居的数组。

关于python - 当使用k个最近邻居时,有没有办法检索所使用的 "neighbors"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58617892/

相关文章:

python - 禁用从 python3 urllib3 出现的 HeaderParsingError

python - 通过保持行子集的最小值,从旧的 panda 数据帧生成新的 panda 数据帧

machine-learning - 使用 sklearn 并行训练多个模型?

python - 在单元测试中使用 wsgiref.simple_server

python - 将 Excel 行读入 Python

Python - 为 csv/xls 文件生成 avro 模式

node.js - 获取不需要的 Brain.js 输出

algorithm - Scikit 学习算法表现极差

python - 如何在 beautiful soup 中使用 get_text() 时更改 unicode 格式

r - 对象错误[[名称,精确 = TRUE]] : subscript out of bounds