توقع السلاسل الزمنية متعددة المتغيرات باستخدام BQML - KDnuggets

توقع السلاسل الزمنية متعددة المتغيرات باستخدام BQML - KDnuggets

عقدة المصدر: 2796796

التنبؤ بالسلاسل الزمنية المتعددة المتغيرات باستخدام BQML
صورة من Pexels
 

في الشتاء الماضي، قدمت عرضًا تقديميًا عن "نموذج سلاسل زمنية أكثر قابلية للتنبؤ باستخدام BQML' في GDG DevFest طشقند 2022 في طشقند عاصمة أوزبكستان.

كنت سأشارك بعض المواد والتعليمات البرمجية بعد DevFest التي استخدمتها في العرض التقديمي، ولكن مر الوقت، وتم إصدار ميزات جديدة في BQML تتداخل مع بعض المحتوى.

ولذلك، سأذكر بدلاً من ذلك الميزات الجديدة وبعض الأشياء التي لا تزال سارية لفترة وجيزة.

بيانات السلاسل الزمنية يتم استخدامه من قبل العديد من المنظمات لأغراض متنوعة، ومن المهم ملاحظة أن "التحليلية التنبؤية"s" يدور حول "المستقبل" في الوقت المناسب. تم استخدام التحليلات التنبؤية للسلاسل الزمنية على المدى القصير والمتوسط ​​والطويل، وعلى الرغم من أنها تحتوي على العديد من الأخطاء والمخاطر، إلا أنها تتحسن بشكل مطرد.

نظرًا لأن "التنبؤ" يبدو مفيدًا جدًا، فقد تميل إلى تطبيق نموذج تنبؤ السلاسل الزمنية إذا كانت لديك بيانات سلاسل زمنية. لكن نماذج التنبؤ بالسلاسل الزمنية عادة ما تكون مكثفة من الناحية الحسابية، وإذا كان لديك الكثير من البيانات، فستكون أكثر كثافة من الناحية الحسابية. لذا، فإن معالجتها وتحميلها إلى بيئة التحليلات وتحليلها أمر مرهق وصعب

إذا كنت تستخدم جوجل BigQuery لإدارة البيانات، يمكنك استخدام إدارة الجودة الشاملةL (BigQuery ML) لتطبيق خوارزميات التعلم الآلي على بياناتك بطريقة بسيطة وسهلة وسريعة. يستخدم الكثير من الأشخاص BigQuery لمعالجة الكثير من البيانات، وكثير من هذه البيانات غالبًا ما تكون بيانات سلاسل زمنية. و تدعم BQML أيضًا نماذج السلاسل الزمنية.

أساس نموذج السلسلة الزمنية الذي تدعمه BQML حاليًا هو المتوسط ​​المتحرك المتكامل للانحدار التلقائي (ARIMA) نموذج. يتنبأ نموذج ARIMA باستخدام بيانات السلاسل الزمنية الموجودة فقط ومن المعروف أنه يتمتع بأداء جيد للتنبؤ على المدى القصير، وبما أنه يجمع بين AR وMA، فهو نموذج شائع يمكنه تغطية مجموعة واسعة من نماذج السلاسل الزمنية.

ومع ذلك، فإن هذا النموذج مكثف حسابيًا بشكل عام، وبما أنه يستخدم فقط بيانات السلاسل الزمنية مع الحالة الطبيعية، فمن الصعب استخدامه في الحالات ذات الاتجاهات أو الموسمية. لذلك، أريما_بلوس يتضمن BQML العديد من الميزات الإضافية كخيارات. يمكنك إضافة تحليل السلاسل الزمنية، والعوامل الموسمية، والارتفاعات والانخفاضات، وتغييرات المعاملات، والمزيد إلى النموذج الخاص بك، أو يمكنك الاطلاع عليها بشكل منفصل وضبط النموذج يدويًا. أنا أيضًا أحب شخصيًا حقيقة أنه يمكنك ضبط الدورية من خلال دمج خيارات العطلات تلقائيًا، وهي إحدى فوائد استخدام النظام الأساسي الذي لا يتطلب منك إضافة المعلومات المتعلقة بالتواريخ يدويًا.

 

التنبؤ بالسلاسل الزمنية المتعددة المتغيرات باستخدام BQML
هيكل ARIMA_PLUS (من دليل BQML)
 

يمكنك الرجوع إلى هذا صفحة للمزيد من المعلومات.

ومع ذلك، عندما يتعلق الأمر بتطبيقات العالم الحقيقي، فإن التنبؤ بالسلاسل الزمنية ليس بهذه البساطة. بالطبع، تمكنا من تحديد دورات متعددة وإضافة تدخلات إلى سلاسل زمنية متعددة باستخدام ARIMA_PLUS، ولكن هناك العديد من العوامل الخارجية المتعلقة ببيانات السلاسل الزمنية، ولا يحدث سوى عدد قليل جدًا من الأحداث بشكل منفصل. قد يكون من الصعب العثور على الثبات في بيانات السلاسل الزمنية.

في العرض التقديمي الأصلي، نظرت في كيفية التعامل مع بيانات السلاسل الزمنية في العالم الحقيقي لإنشاء نموذج للتنبؤ تتحلل هذه السلاسل الزمنية، قم بتنظيف البيانات المتحللة، واستيرادها إلى Python، وبعد ذلك ونسجها مع متغيرات أخرى لإنشاء دالة سلسلة زمنية متعددة المتغيرات، وتقدير السببية ودمجها في نموذج التنبؤ، وتقدير درجة اختلاف التأثير مع التغيرات في الأحداث.

وفي الأشهر القليلة الماضية فقط، ميزة جديدة لإنشاء دوال سلاسل زمنية متعددة المتغيرات بمتغيرات خارجية(ARIMA_PLUS_XREG، XREG أدناه) أصبحت ميزة واضحة في BQML.

يمكنك قراءة كل شيء عنها هنا(سيكون قيد المعاينة اعتبارًا من يوليو 2023، لكنني أعتقد أنه سيكون متاحًا في وقت لاحق من هذا العام).

أنا أتقدم بطلب البرنامج التعليمي الرسمي لنرى كيف يمكن مقارنته بنموذج السلسلة الزمنية التقليدي أحادي المتغير ويمكننا أن نرى كيف يعمل.

الخطوات هي نفسها كما في البرنامج التعليمي، لذلك لن أكررها، ولكن إليك النموذجين اللذين قمت بإنشائهما. أولا، قمت بإنشاء التقليدية أريما_بلوس نموذج ثم XREG نموذج باستخدام نفس البيانات ولكن مع إضافة درجة الحرارة وسرعة الرياح في ذلك الوقت.

#اريما_بلس

# ARIMA_PLUS
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_plus_model
OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
#ARIMA_PLUS_XREG
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_xreg_model OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS_XREG', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25, temperature, wind_speed
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')

 

سيبدو النموذج الذي يستخدم هذه البيانات المتعددة بهذا الشكل

 

التنبؤ بالسلاسل الزمنية المتعددة المتغيرات باستخدام BQML
البنية ARIMA_PLUS_XREG (من دليل BQML)
 

تتم مقارنة نموذجين مع ML.Evaluate.

SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_plus_model, ( SELECT date, pm25 FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ))
SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_xreg_model, ( SELECT date, pm25, temperature, wind_speed FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ), STRUCT( TRUE AS perform_aggregation, 30 AS horizon))

 

النتائج أدناه.

أريما_بلوس

 

التنبؤ بالسلاسل الزمنية المتعددة المتغيرات باستخدام BQML
 

أريما_بلوس_XREG

 

التنبؤ بالسلاسل الزمنية المتعددة المتغيرات باستخدام BQML
 

يمكنك أن ترى أن ل يتقدم نموذج XREG في مقاييس الأداء الأساسية مثل MAE وMSE وMAPE. (من الواضح أن هذا ليس الحل الأمثل، تعتمد على البيانات، ويمكننا أن نقول أننا حصلنا على أداة مفيدة أخرى.)

يعد تحليل السلاسل الزمنية المتعددة المتغيرات خيارًا تشتد الحاجة إليه في كثير من الحالات، ولكن غالبًا ما يكون من الصعب تطبيقه لأسباب مختلفة. الآن يمكننا استخدامه إذا كانت الأسباب في خطوات البيانات والتحليل. يبدو أن لدينا خيارًا جيدًا لذلك، لذا من الجيد أن نعرف ذلك ونأمل أن يكون مفيدًا في كثير من الحالات.
 
 
جيونج مين كوون هو عالم بيانات كبير مستقل يتمتع بخبرة عملية تزيد عن 10 سنوات في الاستفادة من نماذج التعلم الآلي واستخراج البيانات.
 

الطابع الزمني:

اكثر من KD nuggets