सामान्य प्रश्न में आपके प्रश्न का उत्तर देने के लिए, मशीन लर्निंग का उपयोग करना और एच-स्टेप्स-फॉरवर्ड फोरकास्ट की भविष्यवाणी करना संभव है । मुश्किल हिस्सा यह है कि आपको अपने डेटा को एक मैट्रिक्स में बदलना होगा जिसमें आपके पास है, प्रत्येक अवलोकन के लिए एक परिभाषित सीमा के लिए समय श्रृंखला के अवलोकन और पिछले मूल्यों का वास्तविक मूल्य है। आपको मैन्युअल रूप से परिभाषित करने की आवश्यकता होगी कि डेटा की कौन सी सीमा है जो आपकी समय श्रृंखला की भविष्यवाणी करने के लिए प्रासंगिक है, वास्तव में, जैसा कि आप एआरआईएमए मॉडल को मापेंगे। मैट्रिक्स की चौड़ाई / क्षितिज महत्वपूर्ण है आपके मैट्रिक्स द्वारा लिए गए अगले मान की सही भविष्यवाणी करने के लिए है। यदि आपका क्षितिज प्रतिबंधित है, तो आपको मौसमी प्रभाव याद आ सकते हैं।
एक बार जब आप ऐसा कर लेते हैं, तो एच-स्टेप्स-फॉरवर्ड की भविष्यवाणी करने के लिए, आपको अपने अंतिम अवलोकन के आधार पर पहले अगले मूल्य की भविष्यवाणी करने की आवश्यकता होगी। फिर आपको भविष्यवाणी को "वास्तविक मूल्य" के रूप में संग्रहित करना होगा, जिसका उपयोग एआरएमआईए मॉडल की तरह, एक समय के स्थानांतरण के माध्यम से दूसरे अगले मूल्य की भविष्यवाणी करने के लिए किया जाएगा । आपको अपने एच-स्टेप्स-फॉरवर्ड प्राप्त करने के लिए प्रक्रिया एच बार को पुनरावृत्त करना होगा। प्रत्येक पुनरावृत्ति पिछली भविष्यवाणी पर निर्भर करेगा।
R कोड का उपयोग करने वाला एक उदाहरण निम्नलिखित होगा।
library(forecast)
library(randomForest)
# create a daily pattern with random variations
myts <- ts(rep(c(5,6,7,8,11,13,14,15,16,15,14,17,13,12,15,13,12,12,11,10,9,8,7,6), 10)*runif(120,0.8,1.2), freq = 24)
myts_forecast <- forecast(myts, h = 24) # predict the time-series using ets + stl techniques
pred1 <- c(myts, myts_forecast1$mean) # store the prediction
# transform these observations into a matrix with the last 24 past values
idx <- c(1:24)
designmat <- data.frame(lapply(idx, function(x) myts[x:(215+x)])) # create a design matrix
colnames(designmat) <- c(paste0("x_",as.character(c(1:23))),"y")
# create a random forest model and predict iteratively each value
rfModel <- randomForest(y ~., designmat)
for (i in 1:24){
designvec <- data.frame(c(designmat[nrow(designmat), 2:24], 0))
colnames(designvec) <- colnames(designmat)
designvec$y <- predict(rfModel, designvec)
designmat <- rbind(designmat, designvec)
}
pred2 <- designmat$y
#plot to compare predictions
plot(pred1, type = "l")
lines(y = pred2[216:240], x = c(240:264), col = 2)
अब जाहिर है, यह निर्धारित करने के लिए कोई सामान्य नियम नहीं हैं कि समय-श्रृंखला मॉडल या मशीन सीखने का मॉडल अधिक कुशल है या नहीं। मशीन लर्निंग मॉडल के लिए कम्प्यूटेशनल समय अधिक हो सकता है, लेकिन दूसरी ओर, आप उनका उपयोग करके अपनी समय-श्रृंखला की भविष्यवाणी करने के लिए किसी भी प्रकार की अतिरिक्त सुविधाओं को शामिल कर सकते हैं (उदाहरण के लिए केवल संख्यात्मक या तार्किक विशेषताएं नहीं)। सामान्य सलाह होगी कि दोनों का परीक्षण करें, और सबसे कुशल मॉडल चुनें।