ميزات التقويم للتنبؤ بالسلاسل الزمنية في AutoML

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

كجزء من هندسة الميزات، يحول AutoML أعمدة نوع التاريخ والوقت المتوفرة في بيانات التدريب إلى أعمدة جديدة من الميزات المستندة إلى التقويم. يمكن أن تساعد هذه الميزات نماذج الانحدار على تعلم الأنماط الموسمية في عدة إيقاعات. يمكن ل AutoML دائما إنشاء ميزات التقويم من الفهرس الزمني للسلسلة الزمنية لأن هذا عمود مطلوب في بيانات التدريب. كما يتم إنشاء ميزات التقويم من أعمدة أخرى بنوع التاريخ والوقت، إن وجدت. راجع كيفية استخدام AutoML لدليل البيانات للحصول على مزيد من المعلومات حول متطلبات البيانات.

يأخذ AutoML في الاعتبار فئتين من ميزات التقويم: الميزات القياسية التي تستند بالكامل إلى قيم التاريخ والوقت وميزات العطلات الخاصة بالبلد أو المنطقة في العالم. نستعرض هذه الميزات في بقية المقالة.

ميزات التقويم القياسية

يعرض الجدول التالي المجموعة الكاملة من ميزات التقويم القياسية ل AutoML جنبا إلى جنب مع مثال على الإخراج. يستخدم المثال التنسيق القياسي YY-mm-dd %H-%m-%d لتمثيل التاريخ والوقت.

⁧⁩اسم الميزة⁧⁩ الوصف مثال على إخراج 2011-01-01 00:25:30
year ميزة رقمية تمثل السنة التقويمية 2011
year_iso يمثل سنة ISO كما هو محدد في ISO 8601. تبدأ سنوات ISO في الأسبوع الأول من السنة الذي يحتوي على يوم الخميس. على سبيل المثال، إذا كان 1 يناير هو يوم جمعة، تبدأ سنة ISO في 4 يناير. قد تختلف سنوات ISO عن السنوات التقويمية. 2010
half ميزة تشير إلى ما إذا كان التاريخ في النصف الأول أو الثاني من السنة. إنها 1 إذا كان التاريخ قبل 1 يوليو و2 بخلاف ذلك.
quarter ميزة رقمية تمثل ربع التاريخ المحدد. يستغرق القيم 1 أو 2 أو 3 أو 4 تمثل الربع الأول أو الثاني أو الثالث أو الرابع من السنة التقويمية. 1
month ميزة رقمية تمثل الشهر التقويمي. يستغرق القيم من 1 إلى 12. 1
month_lbl ميزة السلسلة التي تمثل اسم الشهر. "يناير"
day ميزة رقمية تمثل يوم الشهر. يستغرق قيما من 1 إلى 31. 1
hour ميزة رقمية تمثل ساعة اليوم. يستغرق القيم من 0 إلى 23. 0
minute ميزة رقمية تمثل الدقيقة في غضون ساعة. يستغرق القيم من 0 إلى 59. 25
second الميزة الرقمية التي تمثل الثانية من التاريخ والوقت المحدد. في حالة توفير تنسيق التاريخ فقط، يتم افتراض أنه 0. يستغرق القيم من 0 إلى 59. 30
am_pm ميزة رقمية تشير إلى ما إذا كان الوقت في الصباح أو المساء. إنها 0 للأوقات قبل 12 مساء و1 للأوقات بعد 12 مساء. 0
am_pm_lbl ميزة سلسلة تشير إلى ما إذا كان الوقت في الصباح أو المساء. 'am'
hour12 ميزة رقمية تمثل ساعة اليوم على ساعة 12 ساعة. يستغرق القيم من 0 إلى 12 للنصف الأول من اليوم و1 إلى 11 للنصف الثاني. 0
wday ميزة رقمية تمثل يوم الأسبوع. يستغرق القيم من 0 إلى 6، حيث يتوافق 0 مع الاثنين. 5
wday_lbl ميزة السلسلة التي تمثل اسم يوم الأسبوع.
qday ميزة رقمية تمثل اليوم خلال ربع السنة. يستغرق القيم من 1 إلى 92. 1
yday ميزة رقمية تمثل يوم السنة. يستغرق القيم من 1 إلى 365، أو 1 إلى 366 في حالة السنة الكبسة. 1
week ميزة رقمية تمثل أسبوع ISO كما هو محدد في ISO 8601. تبدأ أسابيع ISO دائما يوم الاثنين وتنتهي يوم الأحد. يستغرق القيم من 1 إلى 52 أو 53 للسنوات التي تقع فيها 1 يناير يوم الخميس أو للسنوات الكبسة بعد 1 يناير التي تقع يوم الأربعاء. 52

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

الغرض من العمود ميزات التقويم
فهرس الوقت المجموعة الكاملة مطروحا منها ميزات التقويم التي لها ارتباط عال بميزات أخرى. على سبيل المثال، إذا كان تكرار السلسلة الزمنية يوميا، فستتم إزالة أي ميزات ذات تردد أكثر دقة من يوميا لأنها لا توفر معلومات مفيدة.
عمود التاريخ والوقت الآخر مجموعة مخفضة تتكون من Yearو Monthو Dayو DayOfYearDayOfWeekوMinuteQuarterOfYearWeekOfMonthHour.Second إذا كان العمود تاريخا بدون وقت، Hourفسيكون و Minuteو Second و 0.

ميزات العطلات

يمكن ل AutoML اختياريا إنشاء ميزات تمثل العطلات من بلد أو منطقة معينة. يتم تكوين هذه الميزات في AutoML باستخدام المعلمة country_or_region_for_holidays التي تقبل رمز بلد ISO.

ملاحظة

لا يمكن إجراء ميزات العطلات إلا للسلاسل الزمنية ذات التردد اليومي.

يلخص الجدول التالي ميزات العطلة:

⁧⁩اسم الميزة⁧⁩ الوصف
Holiday ميزة السلسلة التي تحدد ما إذا كان التاريخ عطلة وطنية/إقليمية. يتم أيضا وضع علامة على الأيام ضمن نطاق معين من العطلات.
isPaidTimeOff الميزة الثنائية التي تأخذ القيمة 1 إذا كان اليوم هو "عطلة مدفوعة" في البلد أو المنطقة المحددة.

يستخدم AutoML Azure Open Datasets كمصدر لمعلومات العطلات. لمزيد من المعلومات، راجع وثائق PublicHolidays .

لفهم إنشاء ميزة العطلة بشكل أفضل، ضع في اعتبارك بيانات المثال التالي:

sample_data

لجعل ميزات العطلات الأمريكية لهذه البيانات، قمنا بتعيين country_or_region_for_holiday إلى "US" في إعدادات التنبؤ كما هو موضح في نموذج التعليمات البرمجية التالي:

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

تبدو ميزات العطلات التي تم إنشاؤها مثل الإخراج التالي:

sample_data_output

لاحظ أن الميزات التي تم إنشاؤها لها البادئة _automl_ مسبوقة بأسماء الأعمدة الخاصة بها. يستخدم AutoML هذه البادئة بشكل عام لتمييز ميزات الإدخال عن الميزات المهندسة.

الخطوات التالية