আরও সাধারণ শব্দে আপনার প্রশ্নের উত্তর দেওয়ার জন্য, মেশিন লার্নিং ব্যবহার করা এবং এইচ-স্টেপস-সামনের পূর্বাভাসের পূর্বাভাস দেওয়া সম্ভব । জটিল অংশটি হ'ল আপনাকে নিজের ডেটাটিকে একটি ম্যাট্রিক্সে পুনরায় আকার দিতে হবে যাতে প্রতিটি পর্যবেক্ষণের জন্য নির্ধারিত ব্যাপ্তির জন্য সময় সিরিজের পর্যবেক্ষণ এবং অতীতের মানগুলির আসল মূল্য। আপনার সময় সিরিজের পূর্বাভাস দেওয়ার জন্য প্রাসঙ্গিকভাবে উপস্থিত ডেটার পরিসীমা কী তা আপনাকে ম্যানুয়ালি সংজ্ঞায়িত করতে হবে, আসলে আপনি যেমন একটি আরিমা মডেলকে পরামিতি করবেন would ম্যাট্রিক্সের প্রস্থ / দিগন্তটি আপনার ম্যাট্রিক্সের নেওয়া পরবর্তী মানটি সঠিকভাবে অনুমান করার জন্য গুরুত্বপূর্ণ । যদি আপনার দিগন্তটি সীমাবদ্ধ থাকে, আপনি মরসুমের প্রভাবগুলি মিস করতে পারেন।
একবার এটি হয়ে গেলে, এইচ-স্টেপস-সামনের পূর্বাভাস দেওয়ার জন্য, আপনাকে আপনার শেষ পর্যবেক্ষণের ভিত্তিতে প্রথম পরবর্তী মানটির পূর্বাভাস দিতে হবে। এরপরে আপনাকে ভবিষ্যদ্বাণীটিকে একটি "আসল মান" হিসাবে সংরক্ষণ করতে হবে যা একটি আরিমা মডেলের মতো সময় পরিবর্তনের মাধ্যমে দ্বিতীয় পরবর্তী মানটির পূর্বাভাস দেওয়ার জন্য ব্যবহৃত হবে । আপনার এইচ-পদক্ষেপগুলি-এগিয়ে পেতে আপনাকে এই প্রক্রিয়াটির h বার পুনরাবৃত্তি করতে হবে। প্রতিটি পুনরাবৃত্তি পূর্ববর্তী পূর্বাভাসের উপর নির্ভর করবে।
আর কোড ব্যবহার করে একটি উদাহরণ নিম্নলিখিত হবে।
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)
এখন স্পষ্টতই, কোনও সময়-সিরিজ মডেল বা মেশিন লার্নিং মডেল আরও দক্ষ কিনা তা নির্ধারণের জন্য কোনও সাধারণ নিয়ম নেই। গণনামূলক সময় মেশিন লার্নিং মডেলের জন্য বেশি হতে পারে তবে অন্যদিকে, আপনি তাদের টাইম-সিরিজগুলি ব্যবহার করে ভবিষ্যদ্বাণী করতে কোনও ধরণের অতিরিক্ত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে পারেন (উদাহরণস্বরূপ কেবল সংখ্যাসূচক বা যৌক্তিক বৈশিষ্ট্য নয়)। সাধারণ পরামর্শ হ'ল উভয়কেই পরীক্ষা করা এবং সবচেয়ে দক্ষ মডেলটি বেছে নেওয়া।