SQL का उपयोग करके स्नोफ्लेक में समय श्रृंखला का पूर्वानुमान

Nov 25 2022
मांग का पूर्वानुमान, आपूर्ति-श्रृंखला और सूची प्रबंधन, वित्तीय योजना व्यवसाय संचालन के लिए महत्वपूर्ण हैं। मॉडलस्टार आइए आप स्नोफ्लेक में SQL की सिर्फ 1 लाइन के साथ ऐसा करते हैं।

मांग का पूर्वानुमान, आपूर्ति-श्रृंखला और सूची प्रबंधन, वित्तीय योजना व्यवसाय संचालन के लिए महत्वपूर्ण हैं। मॉडलस्टार आइए आप स्नोफ्लेक में SQL की सिर्फ 1 लाइन के साथ ऐसा करते हैं।

ब्लॉग आउटपुट अवलोकन। लेखक द्वारा छवि।

टाइम सीरीज़ फोरकास्टिंग और इसके उपयोग के मामले क्या हैं?

टाइम सीरीज फोरकास्टिंग ऐतिहासिक टाइम सैंपल डेटा के आधार पर मूल्यों की भविष्यवाणी करने की एक तकनीक है।

व्यवसाय प्रबंधन

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

पूर्वानुमान के लिए तकनीकी चुनौतियां

पूर्वानुमान समय श्रृंखला विश्लेषण का एक अनुप्रयोग है। विचार करने के लिए कई घटक हैं:

  • मौसमी: समय के साथ आवधिक परिवर्तन। उदाहरण: गर्मी और सर्दी की छुट्टियां वार्षिक होती हैं, या सुबह में अधिक कॉफी की खपत दैनिक होती है।
  • प्रवृत्ति: निरंतर गैर-आवधिक परिवर्तन। उदाहरण: पिछले 5 वर्षों में कंपनी की बिक्री में वृद्धि।
  • विघटनकारी घटनाएँ: अचानक परिवर्तन। यह पूर्वानुमेय कारकों, जैसे छुट्टियों या सेवा रखरखाव, और अप्रत्याशित मुद्दों, जैसे यादृच्छिक त्रुटियों या बग दोनों द्वारा संचालित किया जा सकता है।

कार्यान्वयन की तकनीकी चुनौतियाँ

मशीन लर्निंग और पूर्वानुमान एल्गोरिदम को लागू करने के लिए पायथन के पास एक समृद्ध इको-सिस्टम है। स्नोफ्लेक की नई स्नोपार्क क्षमता जो आपके डेटा वेयरहाउस में पायथन लाती है, एसक्यूएल में पायथन को चलाने के लिए यूडीएफ का उपयोग करके आप अपने डेटा पर प्रदर्शन कर सकते हैं। हालांकि, यदि आप पूर्वानुमान लगाने के लिए अंतिम समाधान लागू करना चाहते हैं तो यह कठिन और समय लेने वाला हो सकता है। मॉडलस्टार ने पायथन की महाशक्तियों को SQL में लाने के लिए एक सुव्यवस्थित समाधान प्रदान करके इसे हल किया।

मॉडलस्टार एक ओपन सोर्स प्रोजेक्ट है और स्नोफ्लेक जैसे स्नोपार्क से हाल ही में लॉन्च की गई सुविधाओं पर बनाया गया है। यह स्नोफ्लेक कंप्यूट में स्वचालित रूप से निर्भरताओं, मॉडल कलाकृतियों और फ़ाइल I/O को संभालता है।

पूर्वानुमान के लिए SQL 1-लाइनर

मॉडलस्टार आपको स्नोफ्लेक के अंदर एसक्यूएल की 1 लाइन के साथ पूर्वानुमान मॉडल को शिप और प्रबंधित करने और मॉडलिंग परिणामों की कल्पना करने देता है। हुड के तहत, मॉडलस्टार पूर्व-निर्मित पूर्वानुमान एल्गोरिदम प्रदान करता है, और उन्हें आपके डेटाबेस में SQL संग्रहीत कार्यविधि के रूप में उजागर करता है। इस उदाहरण में, हम univariate_time_series_forecast( API doc ) का उपयोग करेंगे। यह एपीआई एक ओपन सोर्स लाइब्रेरी प्रोफेट पर आधारित है , जो उद्योग में सबसे व्यापक रूप से उपयोग किए जाने वाले पूर्वानुमान एल्गोरिदम में से एक है।

यह ट्यूटोरियल समय श्रृंखला पूर्वानुमान मॉडल और एक रिपोर्ट बनाने के चरण प्रदान करता है। यह शामिल करता है:

  • मूल अवधारणा: बिक्री पूर्वानुमान उपयोग मामलों और प्रौद्योगिकी के बारे में।
  • मॉडलस्टार सीएलआई टूल: मॉडलस्टार इंस्टॉलेशन गाइड
  • univariate_time_series_forecastSQL सिंटैक्स: पूर्वानुमान लगाने के लिए SQL 1-लाइनर
  • पूर्वानुमान रिपोर्ट: व्यावसायिक टीमों द्वारा उपयोग किए जाने के लिए तैयार पूर्वानुमान परिणाम
हमारीपुट रिपोर्ट। लेखक द्वारा छवि।

एसक्यूएल एमएल यात्रा

यदि आप पहली बार मॉडलस्टार उपयोगकर्ता हैं तो यह मॉडलस्टार सेटअप करने के लिए एक त्वरित प्रारंभ मार्गदर्शिका है।

चरण # 1: मॉडलस्टार

$ pip install modelstar

एक त्वरित संस्करण जाँच के साथ स्थापना को सत्यापित करें:

$ modelstar --version

चरण #2: एक मॉडलस्टार परियोजना

$ modelstar init forecast_project

forecast_projectअब आप अपनी वर्किंग डायरेक्टरी में एक फोल्डर बना हुआ देखेंगे ।

चरण #3: स्नोफ्लेक सत्र

फ़ोल्डर के अंदर forecast_project, फ़ाइल ढूंढें modelstar.config.yamlऔर इसे अपने पसंदीदा संपादक से खोलें। इसमें अपने स्नोफ्लेक अकाउंट की जानकारी और क्रेडेंशियल्स जोड़ें। सत्र को किसी भी नाम से बेझिझक नाम दें। इस उदाहरण में, हम उपयोग करते हैं snowflake-test। इस फ़ाइल में क्रेडेंशियल्स का उपयोग आपके स्नोफ्लेक डेटा वेयरहाउस से कनेक्ट करने के लिए किया जाता है। (ध्यान दें: modelstar.config.yaml फ़ाइल को अपने CI/CD, संस्करण नियंत्रण में शामिल न करें।)

# ./modelstar.config.yaml
# MODELSTAR CONFIGURATION FILE
---
sessions:
    - name: snowflake-test
      connector: snowflake
      config:
          account: WQA*****
          username: <username>
          password: <password>
          database: MODELSTAR_TEST
          schema: PUBLIC
          stage: test
          warehouse: COMPUTE_WH

चरण # 4: पिंग स्नोफ्लेक

अब हम आपके टर्मिनल से मॉडलस्टार सत्र शुरू कर सकते हैं। नव निर्मित मॉडलस्टार प्रोजेक्ट की निर्देशिका के अंदर (हमारे उदाहरण में, यह है ./forecast_project/), इसे चलाएं:

$ modelstar use snowflake-test

एक सफल पिंग को कुछ इस तरह से ले जाना चाहिए:

कंसोल आउटपुट। लेखक द्वारा छवि।

चरण # 5: स्नोफ्लेक

मॉडलस्टार आउट-ऑफ-द-बॉक्स पूर्वानुमान एल्गोरिथ्म प्रदान करता है और इस एल्गोरिथम के लिए निर्भरता का प्रबंधन करता है, इसलिए आपको यह नहीं करना पड़ेगा। इसे अपने स्नोफ्लेक वेयरहाउस में उपलब्ध कराने के लिए, निम्नलिखित कमांड चलाएँ:

$ modelstar register forecast:univariate_time_series_forecast

कंसोल आउटपुट। लेखक द्वारा छवि।

चरण #6: स्नोफ्लेक में नमूना बिक्री डेटा अपलोड करें (वैकल्पिक, यदि आप अपने खुद के डेटासेट का उपयोग कर रहे हैं )

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

$ modelstar create table sample_data/time_series_data.csv:TS_DATA_TABLE

SQL 1- रैखिक

इस स्क्रिप्ट को स्नोफ्लेक वर्कशीट

पूर्वानुमान मॉडल बनाने के लिए स्नोफ़्लेक में निम्न आदेश का उपयोग करें (उदाहरण नीचे चरण #6 में अपलोड किए गए नमूना डेटा का उपयोग करता है):

CALL UNIVARIATE_TIME_SERIES_FORECAST('TS_DATA_TABLE', 'DS', 'Y', 40, 'M');

स्नोफ्लेक स्नोसाइट। लेखक द्वारा छवि।

अपने स्वयं के डेटा

हुड के तहत, पूर्वानुमान एल्गोरिथ्म स्नोफ्लेक के अंदर एक संग्रहीत प्रक्रिया के रूप में चलता है। यह निम्नलिखित पैरामीटर लेता है:

अपनी खुद की पूर्वानुमान अवधि को कॉन्फ़िगर करने के लिए, यूनिट एलियास की पूरी सूची के लिए इस एपीआई दस्तावेज़ को देखें।

रिजल्ट चेक करें

मॉडल प्रशिक्षण समाप्त होने के बाद, स्नोफ्लेक परिणाम विंडो में, एक सफल रन को इसके समान एक जसन स्ट्रिंग का उत्पादन करना चाहिए:

{
    "return_table": "RESULT_UNIVARIATE_TIME_SERIES_FORECAST",
    "run_id": "3NvQXnHQqUdYG4Fu"
}

भविष्यवाणी डेटा तालिका

आइए रन का उपयोग करके परिणाम तालिका देखें:

SELECT * FROM RESULT_UNIVARIATE_TIME_SERIES_FORECAST;

  • DS( datetime): दिनांक समय
  • Y_FORECAST, YHAT_LOWER, YHAT_UPPER(फ्लोट): अनुमानित मूल्य के निचले और ऊपरी बांड ( Uncertainty Intervalsउनके अर्थ के लिए शब्दावली अनुभाग में देखें)।
  • स्नोफ्लेक स्नोसाइट। लेखक द्वारा छवि।

एक रिपोर्ट जो मशीन लर्निंग आर्टिफैक्ट्स के साथ रन के बारे में जानकारी रिकॉर्ड करती है, मॉडलस्टार के साथ स्वतः उत्पन्न होती है। रिपोर्ट की जाँच करने के लिए, बस इस आदेश को अपने स्थानीय कंप्यूटर में चलाएँ:

$ modelstar check <run_id>

जैसा कि उल्लेख किया गया है, आपके ब्राउज़र में एक रिपोर्ट दिखाई देगी:

मॉडलस्टार रिपोर्ट। लेखक द्वारा छवि।

क्या है रिपोर्ट

रिपोर्ट में 3 खंड शामिल हैं:

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

इन-सैंपल और आउट-ऑफ-सैंपल पूर्वानुमान: इन-सैंपल पूर्वानुमान से, आप यह जांच सकते हैं कि पूर्वानुमान मॉडल वास्तविक डेटा में कितनी अच्छी तरह फिट बैठता है। आउट-ऑफ़-सैंपल पूर्वानुमान भविष्य की भविष्यवाणी दिखाता है।

अनिश्चितता अंतराल: ऊपरी और निचली सीमा के बीच का बैंड। इसका मतलब है कि 80% संभावना है कि सही मूल्य उस अंतराल के भीतर आता है। निश्चितता की एक उच्च आवश्यकता व्यापक बैंड की ओर ले जाती है ( बार्टोज़ का लेख देखें )। अनिश्चितता भी बढ़ती है जैसे-जैसे हम भविष्य में आगे बढ़ते हैं, समय के कार्य के रूप में एक विस्तृत बैंड की ओर अग्रसर होता है।

निष्कर्ष

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

मॉडलस्टार की गिटहब रिपॉजिटरी देखें: यहां , इसे नवीनतम पर अपडेट करने के लिए तारांकित करें। आपके उपयोग-मामले के लिए बग्स, मुद्दों या फीचर अनुरोधों के मामले में जीथब पर पहुंचें या गिटहब पर एक मुद्दा खोलें

  • गिटहब रिपॉजिटरी:https://github.com/modelstar-labs/modelstar
  • दस्तावेज़ीकरण:https://modelstar.io/docs/quickstart/