समय-श्रृंखला भविष्यवाणी के लिए डेटासेट कैसे विभाजित करें?


22

मेरे पास एक बेकरी से ऐतिहासिक बिक्री डेटा है (दैनिक, 3 साल से अधिक)। अब मैं भविष्य की बिक्री की भविष्यवाणी करने के लिए एक मॉडल बनाना चाहता हूं (कार्यदिवस, मौसम चर, आदि जैसी सुविधाओं का उपयोग करके)।

मुझे मॉडल के फिटिंग और मूल्यांकन के लिए डेटासेट कैसे विभाजित करना चाहिए?

  1. क्या इसे कालानुक्रमिक ट्रेन / सत्यापन / परीक्षण विभाजन की आवश्यकता है?
  2. फिर क्या मैं ट्रेन और सत्यापन सेट के साथ हाइपरपैरेट ट्यूनिंग करूंगा?
  3. क्या (नेस्टेड) ​​सत्यापन एक टाइम-सीरीज़ समस्या के लिए एक खराब रणनीति को पार करता है?


EDIT

यहां कुछ लिंक दिए गए हैं, जो मुझे @ ene100 द्वारा सुझाए गए URL का अनुसरण करने के बाद आए:

  • रोब Hyndman वर्णन "रोलिंग पूर्वानुमान मूल" सिद्धांत में और व्यवहार में (आर कोड के साथ)
  • रोलिंग फोरकास्टिंग मूल के अन्य शब्द "वॉक फॉरवर्ड ऑप्टिमाइज़ेशन" ( यहाँ या) हैं यहां ), "रोलिंग क्षितिज" या "चलती मूल"
  • ऐसा लगता है कि इन तकनीकों को निकट भविष्य में शिक्षा-विज्ञान में एकीकृत नहीं किया जाएगा, क्योंकि "इन तकनीकों की मांग और अर्थ का पता अस्पष्ट है" ( यहां कहा गया है )।

और यह समय-श्रृंखला क्रॉस सत्यापन के लिए एक और सुझाव है।

जवाबों:


8

Rob Hyndman के ब्लॉग के इस लिंक में कुछ जानकारी है जो उपयोगी हो सकती है: http://robjhyndman.com/hyndsight/crossvalidation/

मेरे अनुभव में, कालानुक्रमिक सेटों (वर्ष 1, 2 वर्ष, आदि) में डेटा को विभाजित करना और समय के साथ पैरामीटर स्थिरता की जांच करना कुछ ऐसा बनाने में बहुत उपयोगी है जो मजबूत है। इसके अलावा, यदि आपका डेटा मौसमी है, या समूहों (जैसे भौगोलिक क्षेत्रों) में विभाजित करने का एक और स्पष्ट तरीका है, तो उन उप-समूहों में पैरामीटर स्थिरता के लिए जाँच यह भी निर्धारित करने में मदद कर सकती है कि मॉडल कितना मजबूत होगा और यदि यह फिट होने के लिए समझ में आता है अलग-अलग श्रेणियों के डेटा के लिए अलग-अलग मॉडल।

मुझे लगता है कि सांख्यिकीय परीक्षण उपयोगी हो सकते हैं लेकिन अंतिम परिणाम "गंध परीक्षण" भी पास होना चाहिए।


3

1) तकनीकी रूप से, यदि आपको AIC और इसी तरह के मानदंड का उपयोग करने की आवश्यकता है, तो आपको नमूने से परीक्षण करने की आवश्यकता नहीं है क्योंकि वे ओवरफिटिंग से बचने में मदद करते हैं।

3) मैं यह नहीं देखता कि आप मानक सीवी को कैसे कर सकते हैं क्योंकि इसका मतलब है कि कुछ लापता मूल्यों के साथ समय श्रृंखला मॉडल का प्रशिक्षण। इसके बजाय, प्रशिक्षण के लिए एक रोलिंग विंडो का उपयोग करने का प्रयास करें और एक या अधिक बिंदुओं पर प्रतिक्रिया की भविष्यवाणी करें जो खिड़की का अनुसरण करते हैं।


3
समय श्रृंखला में एआईसी अक्सर पूर्वानुमान की त्रुटि के आगे की अवधि पर आधारित होता है। यह गतिशील एन-पीरियड के आगे के पूर्वानुमान प्रदर्शन के बारे में बहुत कुछ नहीं बताता है। इसलिए, यह बिल्कुल पर्याप्त नहीं है।
अक्कल

क्या आप एक संदर्भ प्रदान कर सकते हैं?
जेम्स

1

मैं अक्सर एक बायेसियन दृष्टिकोण से समस्याओं का सामना करता हूं। इस मामले में, मैं एक रणनीति के रूप में overimputation का उपयोग करने पर विचार करूंगा । इसका मतलब है आपके डेटा के लिए संभावना स्थापित करना, लेकिन आपके कुछ परिणामों को छोड़ देना। उन मानों को अनुपलब्ध मानें, और उन गुम परिणामों को उनके संबंधित सहसंयोजकों का उपयोग करके मॉडल करें। फिर जिसके माध्यम से डेटा छोड़ा गया है उसे घुमाएं। आप इसे अंदर कर सकते हैं, उदाहरण के लिए, 10 गुना सीवी प्रक्रिया।

जब एक नमूना कार्यक्रम के अंदर कार्यान्वित किया जाता है, तो इसका मतलब है कि प्रत्येक चरण में आप अपने छोड़े गए डेटा मूल्य (अपने मापदंडों के साथ) का एक उम्मीदवार मूल्य आकर्षित करते हैं और अपने प्रस्तावित मॉडल के खिलाफ इसकी संभावना का आकलन करते हैं। स्थिरता प्राप्त करने के बाद, आपके पास अपने मॉडल को काउंटर-तथ्यात्मक नमूना मान दिया जाता है, जिसका उपयोग आप भविष्यवाणी की त्रुटि का आकलन करने के लिए कर सकते हैं: ये नमूने इस सवाल का जवाब देते हैं कि "मेरा मॉडल इन मूल्यों की अनुपस्थिति में कैसा दिखेगा?" ध्यान दें कि ये पूर्वानुमान गुणांक अनुमानों में मौजूद अनिश्चितता से अनिश्चितता भी प्राप्त करेंगे, इसलिए जब आप अपने सभी अनुमानित मूल्यों को 1 मार्च 2010 को एक साथ एकत्रित करते हैं, तो आपके पास उस तिथि के लिए भविष्यवाणियों का वितरण होगा ।

तथ्य यह है कि इन मूल्यों का नमूना दिया जाता है इसका मतलब है कि आप अभी भी त्रुटि शब्दों का उपयोग कर सकते हैं जो कि पूर्ण डेटा श्रृंखला उपलब्ध होने पर निर्भर करते हैं (जैसे कि चलती औसत), क्योंकि आपके पास हर चरण में एक नमूना परिणाम उपलब्ध है।


1

आपके मामले में आपके पास बहुत सारे विकल्प नहीं हैं। आपके पास केवल एक बेकरी है, ऐसा लगता है। इसलिए, एक आउट-ऑफ-सैंपल टेस्ट चलाने के लिए आपका एकमात्र विकल्प समय अलग करना है, यानी प्रशिक्षण नमूना शुरुआत से लेकर कुछ हाल के बिंदु तक होगा, और होल्डआउट उस बिंदु से आज तक होगा।

yटी=(टी)+εटी(टी) मौसमी डमी, मौसम आदि जैसी विभिन्न बहिर्जात चीजों का एक कार्य है, लेकिन नहीं yरों<टी, तो यह एक गतिशील समय श्रृंखला मॉडल नहीं है। इस मामले में आप किसी भी अलग तरीके से होल्डआउट नमूना बना सकते हैं जैसे कि दिन के यादृच्छिक सबसेट, अतीत में किसी भी अवधि से एक महीना आदि।


आशाजनक लगता है। Y_s <= t में सबस्क्रिप्ट "s" क्या है?
1

यदि आप समय के लिए पूर्वानुमान लगा रहे हैं टी, तो आप किसी का उपयोग नहीं कर रहे हैं yरों, कहा पे रों<टी
अक्कल

मुझे लगता है कि मेरी बेकरी की बिक्री बहिर्जात कारकों पर निर्भर करती है। मुझे नहीं लगता कि यह कड़ाई से गतिशील समय श्रृंखला मॉडल है, जैसे, स्टॉक की कीमतें। मेरे डेटा में, एक सामान्य 5-गुना सीवी के साथ औसत औसत त्रुटि केवल 5-गुना टाइम-सीरीज़ सीवी से थोड़ी बड़ी है, जो यहाँ वर्णित के रूप में सिलवटों के कालानुक्रमिक क्रम को संरक्षित करती है (जैसे, एक एक्स्ट्राट्रेसड्रेसवर्गर के लिए 30.7 बनाम 33.8) । सुनिश्चित नहीं है कि अगर यह गतिशील मॉडल के लिए अनुभवजन्य परीक्षण करने का एक वैध तरीका है?
टोबिप

ARIMA जैसा कुछ एक गतिशील मॉडल होगा। बिक्री आमतौर पर लगातार होती है, यानी आज की बिक्री कल की तरह होती है।
अक्कल

0

डिस्क्लेमर: यहाँ वर्णित विधि पूरी तरह से लिटरेचर के पढ़ने पर आधारित नहीं है । यह अपेक्षाकृत कम इनपुट विंडो लंबाई (लंबे समय तक नहीं / कम निर्भरता मानकर) के साथ एक बहुभिन्नरूपी समय विश्लेषण के लिए K- गुना सीवी विधि को सुधारने का मेरा सबसे अच्छा प्रयास है, जहां डेटा स्रोतों की गैर-सजातीय उपस्थिति के साथ एक समस्या थी। डेटा संग्रह अवधि।

पहले अवलोकनों की श्रृंखला का अवलोकन इतिहास विन्डो विंडो की लंबाई में बदलकर किया जाता है। फिर सिद्धांत खिड़की के डेटासेट को "शार्क" में विभाजित करने के लिए कई बार window_length (लेकिन मॉडल इंस्टेंस की संख्या से कई अधिक) से अलग होता है, और मॉडल को अलग-अलग इंस्टेंसेस के लिए सत्यापन डेटा के रूप में शार्क (जैसे प्लेइंग कार्ड) से निपटना है। मॉडल को अधिक सफाई से अलग रखने के लिए, प्रत्येक शार्द की शुरुआत में window_length की संगरोध खिड़की को सभी प्रशिक्षणों से बाहर रखा गया है।

मॉडल को अपने स्वयं के अलावा सभी शार्क पर प्रशिक्षित किया जाता है, और सत्यापन अपने स्वयं के शार्क पर किया जाता है। मॉडल के संग्रह / पहनावा का सत्यापन सभी शार्ड्स पर सत्यापन त्रुटि के योग द्वारा किया जाता है, जहां प्रत्येक शार्प को इसके संबंधित सबमॉडल द्वारा नियंत्रित किया जाता है। अनदेखी डेटा पर परीक्षण सभी प्रशिक्षित मॉडलों के आउटपुट के औसत (या अन्य उपयुक्त संयोजन) का उपयोग करके किया जा सकता है।

इस पद्धति का उद्देश्य संपूर्ण डेटा संग्रहण अवधि में सिस्टम (और डेटा स्रोतों) पर निर्भरता को कम करना है। यह भी डेटा के हर किसी न किसी हिस्से को मॉडल पर समान प्रभाव देने का इरादा है। ध्यान दें कि संगरोध खिड़कियों को प्रशिक्षण को नुकसान नहीं पहुंचाने के लिए, यह एक बिंदु है कि शार्क की लंबाई डेटा (जैसे कि आम तौर पर) दैनिक, साप्ताहिक और वार्षिक चक्रों में दिखाई देने वाली अवधियों के साथ बहुत अच्छी तरह से संरेखित नहीं होती है।

पहनावा मॉडल शायद पूरी तरह से नए डेटा को बुरी तरह से संभाल सकता है। (मुझे अभी तक पता नहीं है।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.