R 核实验室回归

R 核实验室回归,r,regression,kernlab,R,Regression,Kernlab,有人在kernlab回归中遇到过这种困难吗?看起来它失去了一些比例因子或其他东西,但也许我说它错了 library(kernlab) df <- data.frame(x=seq(0,10,length.out=1000)) df$y <- 3*df$x + runif(1000) - 3 plot(df) res <- ksvm(y ~ x, data=df, kernel='vanilladot') lines(df$x, predict(res), col='blue',

有人在
kernlab
回归中遇到过这种困难吗?看起来它失去了一些比例因子或其他东西,但也许我说它错了

library(kernlab)
df <- data.frame(x=seq(0,10,length.out=1000))
df$y <- 3*df$x + runif(1000) - 3
plot(df)
res <- ksvm(y ~ x, data=df, kernel='vanilladot')
lines(df$x, predict(res), col='blue', lwd=2)
库(kernlab)

df传递
newdata
参数是正确的方法(否则它将使用内部缩放的数据,如您所见)。典型的方式是:

newx = seq(min(df$x), max(df$x), len=100)
lines(newx, predict(res, newdata=data.frame(x=newx)), col='blue', lwd=2)
如果这对你的真实数据仍然不起作用,请详细说明

不管怎样,我通常更喜欢先手动缩放数据,然后设置
scaled=F
。这样你就不必担心这类事情会在不同的时间发生


编辑:我还应该补充一点,当您创建
新数据
数据框时,变量名称应该与您用来创建模型的名称相匹配,而不一定是“x”。

这看起来像是一个bug,对吗?缩放不应取决于
newdata
是隐式的还是显式的。在我的实际任务中,我正在进行交叉验证,因此我传递
newdata=
以获得
predict()
结果。不确定。当然有可能,但我想也有人会为绘制默认模型中的实际内容提出很好的理由。刚刚在与Alexandros的私人电子邮件中确认这是一个bug,他们将在下一版本中修复。谢谢你的帮助。