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

我想预测每个对象的 2-最近邻预测 - 但是,每次调用 knn 函数时,我都会得到不同的预测。应该是这样吗?这是我正在使用的代码:
library(class)
test <- train <- matrix(c(-1, 0, 2, 3),,1)
cl <- c(0, 1, 2, 1)
knn(train, test, cl, k=2)
Run Code Online (Sandbox Code Playgroud)
输出:
> 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
Run Code Online (Sandbox Code Playgroud)
真的很感激任何澄清。
在knn随机打破平局和设置它的方式中,您将始终在投票中始终只有一个正确的(完全匹配)和一个不正确的标签(最接近的匹配),因此结果始终是实际标签和错误的。
您可以通过多次运行实验并查看结果来凭经验看到这一点 - 每行将具有大致相同比例的两种不同结果。
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |