Правильно ли я использую nnet для прогнозирования?

Я все еще новичок в методах R и AI / ML . Я хотел бы использовать нейронную сеть для предсказания, и, поскольку я новичок, я просто хотел бы посмотреть, как это должно быть сделано.

В качестве тестового примера я предсказываю значения sin () на основе двух предыдущих значений. Для обучения я создаю фрейм данных с y = sin (x) , x1 = sin (x-1) , x2 = sin (x-2) , затем используйте формулу y ~ x1 + x2 .

Кажется, это работает, но мне просто интересно, правильный ли это способ сделать это или есть более идиоматический способ.

Это код:

require(quantmod) #for Lag()
requre(nnet)
x <- seq(0, 20, 0.1)
y <- sin(x)
te <- data.frame(y, Lag(y), Lag(y,2))
names(te) <- c("y", "x1", "x2")
p <- nnet(y ~ x1 + x2, data=te, linout=TRUE, size=10)
ps <- predict(p, x1=y)
plot(y, type="l")
lines(ps, col=2)

Спасибо

[править]

Это лучше для вызова прогнозирования?

t2 <- data.frame(sin(x), Lag(sin(x)))
names(t2) <- c("x1", "x2")
vv <- predict(p, t2)
plot(vv)

Думаю, я хотел бы увидеть, что nnet действительно работает, посмотрев на его прогнозы (которые должны приближаться к волне греха).

17
задан Rob 17 October 2011 в 14:48
поделиться