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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
> 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 03:42:06

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

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

票数 6
EN

Stack Overflow用户

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

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

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

https://stackoverflow.com/questions/34215579

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文