【发布时间】:2020-10-29 05:40:23
【问题描述】:
我从“e1071”包中创建了一个 svm 公式,使用以下 GDP:
library(e1071)
set.seed(100)
x <- seq(0.1, 5, by = 0.05)
w <- runif(x, min = 5, max = 6)
y <- log(x) + w ^ 2 + rnorm(x, sd = 0.2)
dt <- as.data.frame(cbind(y,x,w))
dt_train <- dt[(1:(length(x)-1)),]
dt_test <- dt[length(x),]
model <- svm(y ~ ., data = dt_train, type = "eps-regression", kernel =
"radial", gamma = 1, cost = 1, epsilon = 0.1)
为了在样本外生成预测:
predict(model, newdata = dt_test)
28.13943
更改 dt_test 时:
dt_test[1,] <- 100:102
predict(model, newdata = dt_test)
31.00455
但是,当再次更改 dt_test 时,我们会得到相同的答案:
dt_test[1,] <- c(0,78,1000)
predict(model, newdata = dt_test)
31.00455
如果我再改,答案还是一样的:
dt_test[1,] <- rnorm(3)
predict(model, newdata = dt_test)
31.00455
当我想使用 svm 回归对时间序列进行预测时,这个错误是一个障碍。 任何反馈将不胜感激。
【问题讨论】: