返回最近邻的值
Posted
技术标签:
【中文标题】返回最近邻的值【英文标题】:return the value of the nearest neighbor 【发布时间】:2018-04-04 12:00:08 【问题描述】:我想使用 knn 方法进行分类,但是除了检索适当的标签之外,我还需要检索最近邻的值(对测试数据)。如何检索 1nn 中最近的邻居? 比如我有如下数据
#this is the train data
X Y L
1 4 T
2 5 F
3 6 T
#this is the test data
X Y L
8 3 T
#knn with k=1
knn(train[,-3],test[,-3],train$L,k=1)
这个函数的响应只有合适的label("T"),但是我想(比如这里是返回: 行 3:3 6 T) 请帮帮我。
【问题讨论】:
我想指定每个数据帧中每个实例的有用性。(有用性,定义为该实例正确分类的实例数。)我想在有用性属性中添加一个数字(到训练数据),如果给定 knn 的标签等于实际标签。我的数据是列表中的多个数据帧。 【参考方案1】:几个不同的包都有 knn 的实现,你没有说你在使用哪个。并非所有这些都提供邻居,但 FNN 中的 knn 版本提供。
library(FNN)
KNN_Model = knn(train[,-3],test[,-3],train$L,k=1)
attr(KNN_Model, "nn.index")
[,1]
[1,] 3
【讨论】:
如果我在一个列表中有多个数据框,除了行号,我可以指定对应的数据框吗? 我不认为 knn 的任何实现都适用于数据帧列表。我认为您是说列表中的所有数据框都具有相同的结构,并且您想将新点与所有数据框中的点进行比较。如果这是真的,我建议创建一个包含所有数据的大数据框,但添加一列来指示每个点来自哪个原始 DF。 我想在 dprep 包中使用 knngow,因为这种方法可以用于名义数据和数值数据。这个包里有没有可以检索最近邻数据的功能(返回你之前对我问题的回答)以上是关于返回最近邻的值的主要内容,如果未能解决你的问题,请参考以下文章