মেশিন লার্নিং সহ বেশ কয়েকটি পিরিয়ডের পূর্বাভাস


9

আমি ইদানীং আমার টাইম সিরিজ জ্ঞানটি পুনরায় গ্রহণ করেছি এবং বুঝতে পেরেছি যে মেশিন লার্নিং বেশিরভাগ ক্ষেত্রে কেবলমাত্র এক ধাপ এগিয়ে যাওয়ার পূর্বাভাস দেয়।

সঙ্গে এক ধাপে এগিয়ে পূর্বাভাস আমি গড় পূর্বাভাস যা, যেমন, আমরা যদি ঘনঘন ডেটা রয়েছে, ডাটা সকাল 10 টা থেকে পূর্বাভাস বেলা 11 টার এবং বেলা 11 টার থেকে 12am ইত্যাদি জন্য ব্যবহার

এখানে চিত্র বর্ণনা লিখুন

মেশিন লার্নিং পদ্ধতিগুলি কি এইচ-স্টেপস-সামনের পূর্বাভাস তৈরি করতে পারে? এইচ-স্টেপ-সামনের পূর্বাভাসের সাথে আমার অর্থ হ'ল, উদাহরণস্বরূপ, প্রতি ঘন্টা ডেটা ধরে নিয়ে, আমরা সকাল 10 টা থেকে 11,12,13,14,15,16,17 'এর অনুমান পেতে 7-পদক্ষেপের পূর্বাভাস তৈরি করতে ডেটা ব্যবহার করি হে ঘড়ি

উদাহরণ চিত্র: এখানে চিত্র বর্ণনা লিখুন

আমার প্রধান প্রশ্নের সাথে সম্পর্কিত আমি অবাক:

  • কী কারণে যে আমি এইচ-স্টেপ-সামনের পূর্বাভাস তৈরি করতে মেশিন লার্নিং ব্যবহার করে দেখছি না?
  • মেশিন লার্নিং ব্যবহার করে যদি কোনও পদ্ধতি থাকে, তবে এটি কি আরিমার চেয়ে কম বা কম সুনির্দিষ্ট?

উত্তর:


7

(এর একটি অংশ আমার আগের পোস্ট থেকে নেওয়া হয়েছে ) প্রথমে আপনাকে বহুবিধ বারের সিরিজ পূর্বাভাসটি সম্পাদনের জন্য দুটি ভিন্ন উপায়ের মধ্যে পার্থক্য করতে হবে: পুনরাবৃত্তি পূর্বাভাস এবং সরাসরি পূর্বাভাস:

  • পুনরাবৃত্তির পূর্বাভাসে (পুনরাবৃত্তি পূর্বাভাসও বলা হয়) আপনি কেবলমাত্র এক পদক্ষেপের পূর্বাভাসের জন্য আপনার মডেলটিকে প্রশিক্ষণ দিন। প্রশিক্ষণ শেষ হওয়ার পরে আপনি আপনার চূড়ান্ত মডেলটি পুনরাবৃত্তভাবে 1 ধাপ এগিয়ে, 2 ধাপ এগিয়ে, ইত্যাদি পূর্বাভাসে প্রয়োগ করুন ... যতক্ষণ না আপনি কাঙ্ক্ষিত পদক্ষেপের পূর্বাভাস দিগন্ত পৌঁছান । এটি করার জন্য, আপনি পরবর্তী পদক্ষেপটি উত্পন্ন করতে প্রতিটি ধারাবাহিক পদক্ষেপ থেকে মডেলটিতে ফিরে আসার পূর্বাভাসটি ফিড করেন। এই পদ্ধতির Arima এবং সূচক মসৃণকরণ আলগোরিদিম মত ঐতিহ্যগত পূর্বাভাস আলগোরিদিম দ্বারা ব্যবহৃত হয়, এবং এছাড়াও মেশিন লার্নিং ভিত্তিক পূর্বাভাস দেওয়ার জন্য ব্যবহার করা যেতে পারে (দেখুন এই পোস্টে একটি উদাহরণ জন্য, এবং এই পোস্টে কিছু আলোচনার জন্য)।n
  • প্রত্যক্ষ পূর্বাভাস হ'ল আপনি যখন প্রতিটি পদক্ষেপের জন্য পৃথক মডেলটি প্রশিক্ষণ করেন (সুতরাং আপনি পুনরাবৃত্তভাবে ধাপে পৌঁছানোর পরিবর্তে ধাপ এগিয়ে "সরাসরি" করার চেষ্টা করছেন direct সরাসরি পূর্বাভাসের আলোচনার জন্য বেন তাইয়েড এট দেখুন এবং দেখুন আরও জটিল সম্মিলিত পন্থা।nthn

এখন আপনার মূল প্রশ্নের উত্তর দিতে:

মেশিন লার্নিং পদ্ধতিগুলি কি এইচ-স্টেপস-সামনের পূর্বাভাস তৈরি করতে পারে?

হ্যাঁ এমএল পদ্ধতিগুলি, এবং তারা পুনরাবৃত্ত এবং সরাসরি উভয় মাল্টিস্টেপ পূর্বাভাস ব্যবহার করে এইচ-পদক্ষেপের পূর্বে পূর্বাভাস তৈরি করতে পারে। কেবল তা-ই নয়, সরাসরি মাল্টি-স্টেপ পূর্বাভাসের জন্য তারা আরিমা বা এক্সপেনশিয়াল স্মুথিংয়ের মতো traditionalতিহ্যবাহী মডেলগুলির তুলনায় কার্যত আরও উপযুক্ত to তবে নোট করুন যে সরাসরি মাল্টি-স্টেপ পূর্বাভাসের জন্য, আপনাকে এইচ-পদক্ষেপগুলি এগিয়ে নিয়ে যাওয়ার আগে নির্দিষ্ট করতে হবে যার জন্য আপনি নিজের মডেলটি পূর্বাভাস করতে এবং সেই অনুযায়ী আপনার মডেলটিকে প্রশিক্ষণ দিতে চান, তবে পুনরাবৃত্তির পূর্বাভাসের জন্য আপনি আপনার মডেলটি যে কোনও ভবিষ্যতের পদক্ষেপের জন্য ব্যবহার করতে পারবেন ।

তাছাড়া শেভিলন ও হেন্ড্রি যুক্তি দিয়েছেন যে কিছু ক্ষেত্রে সরাসরি বহু-পদক্ষেপের পূর্বাভাস পুনরাবৃত্তির পূর্বাভাসের চেয়ে আরও সঠিক - এটি বোঝায় যে traditionalতিহ্যগত পদ্ধতির চেয়ে এমএল আরও সঠিক হবে।

আপনার অন্যান্য প্রশ্নের জন্য:

  • কী কারণে যে আমি এইচ-স্টেপ-সামনের পূর্বাভাস তৈরি করতে মেশিন লার্নিং ব্যবহার করে দেখছি না?

বহু লোক বহু-পদক্ষেপের পূর্বাভাসের জন্য এমএল ব্যবহার করছেন, বিশেষত নিউরাল নেটওয়র্কস ব্যবহার করছেন: আর ফোরকাস্ট প্যাকেজ, কুরেন্টস'স এনএনফোর আর প্যাকেজ, অ্যামাজনের ডিএপিএআর মডেল এবং আরও অনেকগুলিতে হাইল্ডম্যানের নেটার পদ্ধতি উপলব্ধ।

এক্সজিবিস্ট কয়েকটি কাগল সময় সিরিজ প্রতিযোগিতায়ও সাফল্যের সাথে ব্যবহার করা হয়েছে।

Bontempi এবং অন্যান্য দেখুন একটি সাধারণ আলোচনার জন্য।

  • মেশিন লার্নিং ব্যবহার করে যদি কোনও পদ্ধতি থাকে, তবে এটি কি আরিমার চেয়ে কম বা কম সুনির্দিষ্ট?

এটি একটি উন্মুক্ত প্রশ্ন এবং স্পষ্টতই ডেটা এবং যে অ্যাপ্লিকেশনটির জন্য ভবিষ্যদ্বাণী করা হচ্ছে তার উপর নির্ভর করে।


1

আমি গত কয়েকমাসে অসাধারণ সনাক্তকরণের জন্য টাইম সিরিজ নিয়ে খেলছি এবং আমি আমার অভিজ্ঞতা আপনার সাথে ভাগ করে নিতে পারি।

যে সিরিজটির সাথে আমি কাজ করেছিলাম সেটি দুটি মৌসুমী (দৈনিক এবং সাপ্তাহিক) দ্বারা চিহ্নিত করা হয়েছিল, দিবালোকের সময় কোনও প্রবণতা এবং অনেকগুলি শিখর।

আমি বেশ কয়েকটি পরীক্ষা-নিরীক্ষা করেছিলাম এবং তারপরে আমি এলএসটিএম নিউরাল নেটগুলির উপর ভিত্তি করে একটি মডেল বেছে নিয়েছিলাম কারণ আমার ক্ষেত্রে এটি অরিমাকে ছাড়িয়েছে, তবে অবশ্যই পরিসংখ্যান হিসাবে সবকিছুই, এর কোনও সাধারণ সমাধান নেই।

নিউরাল নেট দিয়ে ভবিষ্যতে একাধিকবার পদক্ষেপের পূর্বাভাস দেওয়া খুব সহজ, আপনার একের পরিবর্তে N মানগুলি আউটপুট করতে হবে এবং এন আউটপুটটিকে সত্যিকারের এন পর্যবেক্ষণের সাথে তুলনা করা হবে।

আমার অভিজ্ঞতা থেকে আমি আপনাকে বলতে পারি যে একটি কম এন ব্যবহার করে (বলুন 1), মডেলটি সত্যই মৌসুমতাকে "শেখা" না করে নতুনটির পূর্বাভাস দেওয়ার জন্য অতীতের কয়েকটি সময়ের ধাপটি কঠোরভাবে ব্যবহার করবে। অন্যদিকে, এন খুব মচ বৃদ্ধি করে, alতুসত্তা শিখলেও সামগ্রিক নির্ভুলতা হ্রাস পায়।

আমার বিশ্লেষণের উদ্দেশ্যে আমি এন = 4 (ভবিষ্যতে 2 ঘন্টা) ভাল সমঝোতা হতে দেখেছি।


1

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

এখন স্পষ্টতই, কোনও সময়-সিরিজ মডেল বা মেশিন লার্নিং মডেল আরও দক্ষ কিনা তা নির্ধারণের জন্য কোনও সাধারণ নিয়ম নেই। গণনামূলক সময় মেশিন লার্নিং মডেলের জন্য বেশি হতে পারে তবে অন্যদিকে, আপনি তাদের টাইম-সিরিজগুলি ব্যবহার করে ভবিষ্যদ্বাণী করতে কোনও ধরণের অতিরিক্ত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে পারেন (উদাহরণস্বরূপ কেবল সংখ্যাসূচক বা যৌক্তিক বৈশিষ্ট্য নয়)। সাধারণ পরামর্শ হ'ল উভয়কেই পরীক্ষা করা এবং সবচেয়ে দক্ষ মডেলটি বেছে নেওয়া।


যদিও আপনি উল্লেখ করতে চাইবেন যে আপনি যেটাকে সময় বদলানোর কথা বলছেন তা হ'ল একটি স্ট্যান্ডার্ড আরিমা যা করছে। এজন্য আরিমা-ভবিষ্যদ্বাণীগুলি খুব লিনিয়ার হতে থাকে।
5 ই

হ্যাঁ অবশ্যই. এই পদক্ষেপটি পরিষ্কার করতে আমি আমার উত্তর সম্পাদনা করব।
এশফফায়ার

1
সময় সিরিজের মডেলগুলিতে আপনি অতিরিক্ত বৈশিষ্ট্যগুলিও অন্তর্ভুক্ত করতে পারেন।
টিম

সংশোধন করুন, এরিম্যাক্স সহ তবে এগুলি সংখ্যাসূচক হওয়া দরকার এবং যুক্ত সংখ্যাগুলি একটি এআরএমএতে ব্যবহৃত গুণফলগুলির মতো সহজে ব্যাখ্যা করা যায় না।
এশফফায়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.