Вы можете использовать пакет forecast
для подгонки нейронной сети к данным временных рядов, таких как
library(forecast)
normalize <- function(x) {
return((x - min(x)) / (max(x) - min(x)))
}
data(lynx)
exchange_norm <- as.data.frame(lapply(lynx, normalize))
colnames(exchange_norm) <- "exchange"
summary(exchange_norm)
#Convert again to time series data
exchange_norm <- ts(exchange_norm,frequency=1,start=c(1821, 1), end=c(1934, 1))
# subset the time series
exchange_train <- window(exchange_norm, start=c(1821, 1), end=c(1900, 1))
exchange_test <- window(exchange_norm, start=c(1901, 1), end=c(1934, 1))
## Fit model to the exchange_train data
fit <- nnetar(exchange_train, decay=0.5, maxit=150)
#Predict on exchange_test data
plot(forecast(fit,h=34))
lines(exchange_test)