我想找到一种方法来确定在我的knn算法中实际使用了哪些邻居,这样我就可以深入研究与我的特征相似的数据行。
以下是一个数据集的示例,我将其分为训练集和测试集用于预测模型:
Player PER VORP WSFabricio Oberto 11.9 1.0 4.1Eddie Johnson 16.5 1.7 4.8Tim Legler 15.9 2.0 6.8Ersan Ilyasova 14.3 0.7 3.8Kevin Love 25.4 3.5 10.0Tim Hardaway 20.6 5.1 11.7Frank 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个邻居?在这种情况下,哪些球员实际上被用来确定目标?
有没有办法获得每行分析中使用的5个邻居(即球员)的列表?
回答:
knn.kneighbors
将返回一个对应的最近邻居数组。