我正在研究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)

我觉得我错过了一些显而易见的东西,我真的很感激你能提供的任何帮助或建议,谢谢你抽出时间。
发布于 2017-12-23 16:01:09
在绘制线之前,只需对x值进行排序。
plot(x,y)
ORD = order(grid2$x)
lines(grid2$x[ORD],knn10$pred[ORD])

https://stackoverflow.com/questions/47953889
复制相似问题