【问题标题】:When using k nearest neighbors, is there a way to retrieve the "neighbors" that are used?当使用 k 最近的邻居时,有没有办法检索使用的“邻居”?
【发布时间】:2020-02-25 07:27:37
【问题描述】:

我想找到一种方法来确定我的 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 个邻居(又名玩家)的列表?

【问题讨论】:

    标签: python dataframe machine-learning prediction knn


    【解决方案1】:

    knn.kneighbors 将返回一个对应最近邻居的数组。

    【讨论】:

    • 谢谢尼古拉斯。我将补充一点,knn.kneighbors 实际上返回 2 个数组,第一个是邻居与初始目标的距离,第二个数组是相应邻居的索引。感谢您为我指明正确的方向!
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 2013-08-16
    • 2016-09-10
    • 2019-06-05
    • 2011-05-09
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    相关资源
    最近更新 更多