使用 k 最近邻时,有没有办法检索使用的 "neighbors"?
When using k nearest neighbors, is there a way to retrieve the "neighbors" that are used?
我想找到一种方法来确定我的 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 个邻居(又名玩家)的列表?
knn.kneighbors
将 return 你一个相应的最近邻数组。
我想找到一种方法来确定我的 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 个邻居(又名玩家)的列表?
knn.kneighbors
将 return 你一个相应的最近邻数组。