मैं पिछली बार श्रृंखला डेटा के आधार पर ट्रैफ़िक की भविष्यवाणी कैसे कर सकता हूं?


18

यदि मेरे पास एक रिटेल स्टोर है और यह मापने का एक तरीका है कि हर मिनट में कितने लोग मेरे स्टोर में प्रवेश करें, और उस डेटा को टाइमस्टैम्प करें, तो मैं भविष्य के फुट यातायात की भविष्यवाणी कैसे कर सकता हूं?

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

यह लगभग ऐसा लगता है कि यह वित्तीय मॉडलिंग के समान हो सकता है, जहां आप समय श्रृंखला डेटा से निपटते हैं। कोई विचार?


हो सकता है कि यह श्वेतपत्र उपयोगी हो। knime.org/files/knime_bigdata_energy_timeseries_whitepaper.pdf यह सीज़न सहित मॉडलिंग समय श्रृंखला के बारे में है। - रोसारिया
रोसारिया

जवाबों:


17

केएनएन जैसे मॉडल के साथ समस्या यह है कि वे सीज़न की शुद्धता (प्रवृत्ति में समय-निर्भर विविधताएं) को ध्यान में नहीं रखते हैं। उन लोगों को ध्यान में रखने के लिए, आपको समय श्रृंखला विश्लेषण का उपयोग करना चाहिए।

आपके जैसे गणना डेटा के लिए, आप सामान्यीकृत रैखिक ऑटो-रिग्रेसिव मूविंग औसत मॉडल (GLARMA) का उपयोग कर सकते हैं। सौभाग्य से, एक आर पैकेज है जो उन्हें ( ग्लैमर ) लागू करता है ।

शब्दचित्र उपकरण के पीछे सिद्धांत के लिए एक अच्छा स्रोत है।


2
पूर्वानुमान और समय श्रृंखला विश्लेषण के लिए एक और बहुत ही उपयोगी पैकेज प्रो. रोब जे। हंडमैन द्वारा पूर्वानुमान है।
Def_Os

क्या आप जानते हैं कि यह पहले से ही किसी अन्य भाषा में लागू किया गया है? मैं आर के साथ बिल्कुल समर्थक नहीं हूं। मैं निश्चित रूप से पेपर को कम से कम पढ़ूंगा।
user1132959

मैं एक से परिचित नहीं हूं। यदि आप अजगर का उपयोग करना चाहते हैं, तो आप अजगर के बाकी प्रोग्रामिंग में से अधिकांश करते हुए ग्लॉमा फ़ंक्शन को कॉल करने के लिए rpy2 पैकेज का उपयोग कर सकते हैं । अधिकांश अन्य भाषाओं में भी ऐसा संबंधक होता है।
क्रिस्टोफर लाउडेन

10

मुझे लगता है कि ऊपर क्रिस्टोफर के जवाब पूरी तरह से समझदार हैं। एक वैकल्पिक दृष्टिकोण के रूप में (या शायद उसके द्वारा दी गई सलाह के अतिरिक्त), मैं केवल डेटा को थोड़ा सा देखने की कोशिश करके शुरू कर सकता हूं कि जो कुछ चल रहा है, उसके बारे में जानने की कोशिश करें।

यदि आपने पहले से ऐसा नहीं किया है, तो आप सुविधाओं के रूप में एक सप्ताह के महीने और दिन को जोड़ने का प्रयास कर सकते हैं - यदि आप KNN के साथ चिपके रहते हैं, तो इससे मॉडल को सीज़न लेने में मदद मिलेगी।

इसे लेने के एक अलग तरीके के रूप में, आप वास्तव में मूल मॉडल (जैसे ओएलएस) के साथ शुरुआत करने पर विचार कर सकते हैं .. ये अक्सर उचित भविष्यवाणियां करने में लंबा रास्ता तय करते हैं।

अंत में, जितना अधिक हम आपके डेटा के बारे में जानते हैं, हमारे लिए सुझावों को उत्पन्न करने में सहायता करना उतना ही आसान होगा - आप किस समय सीमा का अवलोकन कर रहे हैं? वर्तमान में आपके द्वारा उपयोग की जा रही सुविधाएँ क्या हैं? आदि।

उम्मीद है की यह मदद करेगा --


हां, किसी भी विश्लेषण में दृश्य एक आवश्यक पहला कदम है।
क्रिस्टोफर लाउडन

मैंने सुविधाओं के रूप में महीने, महीने का दिन, सप्ताह का दिन और वर्ष जोड़ा। मैंने भी "हाल ही में" मूल्य को कम करने की कोशिश की। मुझे नहीं लगता कि मैंने ओएलएस की कोशिश की है। मैं एक समय सीमा देख रहा हूं जो एक दो सप्ताह से लेकर कई वर्षों तक कहीं भी हो सकती है। जहां तक ​​यह कल्पना करने की बात है, मैंने ऐसा करने की कोशिश की। समस्या यह है, हम चाहते हैं कि सॉफ़्टवेयर विभिन्न ग्राहकों के लिए, मानव हस्तक्षेप के बिना स्वचालित रूप से भविष्यवाणी करने में सक्षम हो।
user1132959

3

आप तंत्रिका नेटवर्क की कोशिश कर सकते हैं। आप कैसे समय श्रृंखला पर एनएन लागू करने के लिए पर 2 महान स्पष्टीकरण प्राप्त कर सकते यहाँ और यहाँ

ध्यान दें कि यह सबसे अच्छा अभ्यास है:

  • इनपुट डेटा को डिसेंड्रलाइज़ / डिसेंड्रेंड करें (ताकि एनएन सीज़न न सीखे)।
  • पुनर्विक्रय / इनपुट डेटा को सामान्य करें।

क्योंकि आप जो देख रहे हैं वह एक प्रतिगमन समस्या है, सक्रियण कार्य होना चाहिए या linearनहीं और आपको इसे कम करने का लक्ष्य है ( एक वर्गीकरण समस्या में अधिकतमकरण के विरोध के रूप में)।sigmoidtanhsum-of-squares errornegative log-likelihood


मैं एक विकल्प के रूप में तंत्रिका नेटवर्क में देख रहा था, लेकिन मुझे नहीं पता था कि मैं किस तरह के मापदंडों का उपयोग करूंगा। मुझे उन लोगों को एक शॉट देना होगा।
user1132959

सिग्मॉइड और तन्ह ठीक हैं, नॉनलाइनरिटी अधिक जटिल इंटरैक्शन सीखना चाहते हैं और वेट इन्हें किसी भी रेंज में मैप करेगा, जहां नेटवर्क आवश्यक हो
Jan van der Vegt

3

जैसा कि @Christopher Lauden ने ऊपर उल्लेख किया है, इस प्रकार की चीज़ के लिए समय-श्रृंखला विश्लेषण सबसे उपयुक्त है। यदि, हालाँकि, आप अधिक पारंपरिक "मशीन लर्निंग अप्रोच" करना चाहते हैं, तो जो कुछ मैंने अतीत में किया है वह आपके डेटा को सुविधाओं के रूप में समय की खिड़कियों को ओवरलैप करने में रोकना है, फिर इसका उपयोग अगले दिनों (या सप्ताह) की भविष्यवाणी करने के लिए करें ) यातायात।

आपकी सुविधा मैट्रिक्स कुछ इस तरह होगी:

t1 | t2 | ... | tN
t2 | t3 | ... | tN+1
t3 | t4 | ... | tN+2
...
tW | tW+1 | ... |tN+W

tIदिन में ट्रैफ़िक कहाँ है I। जिस सुविधा का आप अनुमान लगा रहे हैं, वह अंतिम कॉलम के अगले दिन का ट्रैफ़िक है। संक्षेप में, अगले दिन के यातायात की भविष्यवाणी करने के लिए यातायात की एक खिड़की का उपयोग करें।

किसी भी प्रकार का ML मॉडल इसके लिए काम करेगा।

संपादित करें

प्रश्न के उत्तर में, "क्या आप इस फीचर मैट्रिक्स का उपयोग करने के बारे में विस्तार से बता सकते हैं":

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


क्या आप इस बारे में विस्तार से बता सकते हैं कि आप इस सुविधा मैट्रिक्स का उपयोग कैसे करेंगे? क्या आप दिन भर के ट्रैफ़िक में बदलाव के आधार पर सीखने की कोशिश कर रहे हैं?
user1132959

मैंने उम्मीद की प्रतिक्रिया को और स्पष्टता से संपादित किया।
गैलमाइन

2

ठीक है, सबसे पहले, मैं गहराई से ज्ञान के बिना मशीन लर्निंग जैसी चीजों का उपयोग नहीं करूंगा। अगर मैं इस समय की श्रृंखला होती तो सरल बातें करती:

  1. यह समझने के लिए कि आप सबसे व्यस्त, औसत और कम पैर वाले ट्रैफ़िक में कौन सा समय है, के लिए sql क्वेरी लिखें।
  2. फिर पूरे समय श्रृंखला की कल्पना करने की कोशिश करें, और आप पैटर्न लेने के लिए बुनियादी पैटर्न मिलान एल्गोरिदम का उपयोग कर सकते हैं।

यह दो चीजें आपको यह समझने में मदद करेंगी कि आपका डेटा सेट आपको क्या बता रहा है। फिर, उस हाथ में, आप मशीन सीखने के एल्गोरिदम का उपयोग करने के लिए बेहतर स्थिति में होंगे।

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


0

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


0

इस धागे को वापस जीवन में लाना, क्योंकि यह दूसरों के लिए इसी तरह के सवालों के साथ यहां उतरने के लिए उपयोगी हो सकता है।

फेसबुक ने हाल ही में पैगंबर https://facebookincubator.github.io/prophet/ नामक उनके आंतरिक पूर्वानुमान उपकरण को जारी किया और खोल दिया।

यह R & Python दोनों पैकेज के रूप में उपलब्ध है, और यह किसी छोटी मशीन लर्निंग बैकग्राउंड वाले व्यक्ति के लिए एक दिलचस्प समाधान साबित होता है। हालांकि, कुछ अतिरिक्त एमएल ज्ञान उत्पादित मॉडल को ट्यून और अनुकूलित करने की अनुमति देता है।

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

हुड के तहत, यह एक सामान्यीकृत योजक मॉडल (GAM) के समान है - समर्पित कागज पर अधिक विवरण: https://facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf

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