首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当在R中使用KNN (k = 2)时,不断获得对小数据集的不同预测

当在R中使用KNN (k = 2)时,不断获得对小数据集的不同预测
EN

Stack Overflow用户
提问于 2015-12-11 11:21:28
回答 2查看 1.5K关注 0票数 4

考虑使用以下训练集的回归问题:

我想为每个对象预测2个最近的邻居预测-但是,每次我调用knn函数时都会得到不同的预测。应该是这样吗?下面是我使用的代码:

代码语言:javascript
代码运行次数:0
运行
复制
library(class)
test <- train <- matrix(c(-1, 0, 2, 3),,1)
cl <- c(0, 1, 2, 1)
knn(train, test, cl, k=2)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
> knn(train, test, cl, k=2)
[1] 1 1 2 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 0 0 1 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 1 1 1 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 0 0 1 2
Levels: 0 1 2

我会非常感谢你的澄清。

EN

回答 2

Stack Overflow用户

发布于 2015-12-11 11:42:06

knn中,平局是随机打破的,按照您设置的方式,投票中将始终只有一个正确的标签(完全匹配)和一个错误的标签(最近的匹配),因此结果总是在实际标签和错误标签之间随机选择。

您可以通过多次运行实验并查看结果,从经验上看到这一点-每一行都会有两个大致相同比例的不同结果。

票数 6
EN

Stack Overflow用户

发布于 2015-12-11 11:41:37

尽管代码不起作用,但我猜测这是一个平局,在这种情况下,它会随机选择,这就是为什么你每次使用它都会看到不同的结果。在这种情况下,选择k=3将停止所有关联,并每次都给您相同的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34215579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档