R 中的 Knn 回归
Knn Regression in R
我正在研究 Knn 回归方法和后来的核平滑。
我希望在 R 中使用绘图来演示这些方法。我使用以下代码生成了一个数据集:
x = runif(100,0,pi)
e = rnorm(100,0,0.1)
y = sin(x)+e
我一直在尝试遵循此处关于如何在 9.2 中使用 "knn.reg" 的描述:
https://daviddalpiaz.github.io/r4sl/k-nearest-neighbors.html#regression
grid2=data.frame(x)
knn10 = FNN::knn.reg(train = x, test = grid2, y = y, k = 10)
我的预测值对我来说似乎是合理的,但是当我尝试在我的 x~y 图上用它们绘制一条线时,我没有得到我希望的结果。
plot(x,y)
lines(grid2$x,knn10$pred)
我觉得我遗漏了一些明显的东西,非常感谢您提供的任何帮助或建议,感谢您抽出宝贵时间。
您只需要在绘制线条之前对 x 值进行排序。
plot(x,y)
ORD = order(grid2$x)
lines(grid2$x[ORD],knn10$pred[ORD])
我正在研究 Knn 回归方法和后来的核平滑。 我希望在 R 中使用绘图来演示这些方法。我使用以下代码生成了一个数据集:
x = runif(100,0,pi)
e = rnorm(100,0,0.1)
y = sin(x)+e
我一直在尝试遵循此处关于如何在 9.2 中使用 "knn.reg" 的描述: https://daviddalpiaz.github.io/r4sl/k-nearest-neighbors.html#regression
grid2=data.frame(x)
knn10 = FNN::knn.reg(train = x, test = grid2, y = y, k = 10)
我的预测值对我来说似乎是合理的,但是当我尝试在我的 x~y 图上用它们绘制一条线时,我没有得到我希望的结果。
plot(x,y)
lines(grid2$x,knn10$pred)
我觉得我遗漏了一些明显的东西,非常感谢您提供的任何帮助或建议,感谢您抽出宝贵时间。
您只需要在绘制线条之前对 x 值进行排序。
plot(x,y)
ORD = order(grid2$x)
lines(grid2$x[ORD],knn10$pred[ORD])