Bagikan melalui


Fitur kalender untuk prakiraan rangkaian waktu di AutoML

Artikel ini berfokus pada fitur berbasis kalender yang dibuat AutoML untuk meningkatkan akurasi model regresi prakiraan. Karena liburan dapat memiliki pengaruh yang kuat pada bagaimana sistem yang dimodelkan bereaksi, waktu sebelum, selama, dan setelah liburan dapat memodelkan pola seri. Setiap hari libur menghasilkan jendela di atas himpunan data Anda yang ada yang dapat ditetapkan oleh pelajar. Ini dapat sangat berguna dalam skenario seperti hari libur yang menghasilkan permintaan tinggi untuk produk tertentu. Lihat artikel gambaran umum metode untuk informasi umum selengkapnya tentang metodologi prakiraan di AutoML. Instruksi dan contoh untuk model prakiraan pelatihan di AutoML dapat ditemukan di artikel prakiraan AutoML untuk rangkaian waktu kami.

Sebagai bagian dari rekayasa fitur, AutoML mengubah kolom jenis tanggalwaktu yang disediakan dalam data pelatihan menjadi kolom baru fitur berbasis kalender. Fitur-fitur ini dapat membantu model regresi mempelajari pola musiman pada beberapa irama. AutoML selalu dapat membuat fitur kalender dari indeks waktu rangkaian waktu karena ini adalah kolom yang diperlukan dalam data pelatihan. Fitur kalender juga dibuat dari kolom lain dengan jenis tanggalwaktu, jika ada. Lihat cara AutoML menggunakan panduan data Anda untuk informasi selengkapnya tentang persyaratan data.

AutoML mempertimbangkan dua kategori fitur kalender: fitur standar yang sepenuhnya didasarkan pada nilai tanggal dan waktu dan fitur liburan yang khusus untuk negara atau wilayah dunia. Kami membahas fitur-fitur ini di sisa artikel.

Fitur kalender standar

Tabel berikut ini memperlihatkan kumpulan lengkap fitur kalender standar AutoML bersama dengan contoh output. Contohnya menggunakan format standar YY-mm-dd %H-%m-%d untuk representasi tanggalwaktu.

Nama fitur Deskripsi Contoh output untuk 2011-01-01 00:25:30
year Fitur numerik yang mewakili tahun kalender 2011
year_iso Mewakili tahun ISO seperti yang didefinisikan dalam ISO 8601. Tahun ISO dimulai pada minggu pertama tahun yang memiliki hari Kamis. Misalnya, jika 1 Januari adalah hari Jumat, tahun ISO dimulai pada 4 Januari. Tahun ISO mungkin berbeda dari tahun kalender. 2010
half Fitur yang menunjukkan apakah tanggal berada di paruh pertama atau kedua tahun ini. Ini adalah 1 jika tanggal sebelum 1 Juli dan 2 sebaliknya.
quarter Fitur numerik yang mewakili kuartal dari tanggal yang diberikan. Dibutuhkan nilai 1, 2, 3, atau 4 yang mewakili kuartal pertama, kedua, ketiga, kuartal keempat tahun kalender. 1
month Fitur numerik yang mewakili bulan kalender. Dibutuhkan nilai 1 hingga 12. 1
month_lbl Fitur string yang mewakili nama bulan. 'Januari'
day Fitur numerik yang mewakili hari dalam sebulan. Dibutuhkan nilai dari 1 hingga 31. 1
hour Fitur numerik yang mewakili jam dalam sehari. Dibutuhkan nilai 0 hingga 23. 0
minute Fitur numerik yang mewakili menit dalam satu jam. Dibutuhkan nilai 0 hingga 59. 25
second Fitur numerik yang mewakili detik dari tanggalwaktu yang diberikan. Dalam kasus di mana hanya format tanggal yang disediakan, maka diasumsikan sebagai 0. Dibutuhkan nilai 0 hingga 59. 30
am_pm Fitur numerik yang menunjukkan apakah waktunya di pagi atau malam hari. Ini 0 untuk waktu sebelum pukul 12:00 dan 1 untuk waktu setelah pukul 12:00. 0
am_pm_lbl Fitur string yang menunjukkan apakah waktunya di pagi atau malam hari. 'am'
hour12 Fitur numerik yang mewakili jam dalam sehari pada jam 12 jam. Dibutuhkan nilai 0 hingga 12 untuk paruh pertama hari dan 1 sampai 11 untuk paruh kedua. 0
wday Fitur numerik yang mewakili hari dalam seminggu. Dibutuhkan nilai 0 sampai 6, di mana 0 sesuai dengan Senin. 5
wday_lbl Fitur string yang mewakili nama hari dalam seminggu.
qday Fitur numerik yang mewakili hari dalam kuartal. Dibutuhkan nilai 1 hingga 92. 1
yday Fitur numerik yang mewakili hari dalam setahun. Dibutuhkan nilai 1 hingga 365, atau 1 hingga 366 dalam kasus tahun kampung. 1
week Fitur numerik yang mewakili minggu ISO seperti yang didefinisikan dalam ISO 8601. Minggu ISO selalu dimulai pada hari Senin dan berakhir pada hari Minggu. Dibutuhkan nilai 1 sampai 52, atau 53 selama bertahun-tahun memiliki 1 Januari jatuh pada hari Kamis atau untuk tahun kabut memiliki 1 Januari jatuh pada hari Rabu. 52

Kumpulan lengkap fitur kalender standar mungkin tidak dibuat dalam semua kasus. Set yang dihasilkan tergantung pada frekuensi rangkaian waktu dan apakah data pelatihan berisi fitur tanggalwaktu selain indeks waktu. Tabel berikut ini memperlihatkan fitur yang dibuat untuk jenis kolom yang berbeda:

Tujuan kolom Fitur kalender
Indeks waktu Fitur kalender minus set lengkap yang memiliki korelasi tinggi dengan fitur lain. Misalnya, jika frekuensi rangkaian waktu adalah harian, maka fitur apa pun dengan frekuensi yang lebih terperinci daripada harian akan dihapus karena tidak memberikan informasi yang berguna.
Kolom tanggalwaktu lainnya Kumpulan berkurang yang Yearterdiri dari , , DayMonth, DayOfWeek, DayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute, dan Second. Jika kolom adalah tanggal tanpa waktu, , Hour, Minutedan Second akan menjadi 0.

Fitur liburan

AutoML dapat secara opsional membuat fitur yang mewakili hari libur dari negara atau wilayah tertentu. Fitur-fitur ini dikonfigurasi di AutoML menggunakan country_or_region_for_holidays parameter , yang menerima kode negara ISO.

Catatan

Fitur liburan hanya dapat dibuat untuk rangkaian waktu dengan frekuensi harian.

Tabel berikut ini meringkas fitur liburan:

Nama fitur Deskripsi
Holiday Fitur string yang menentukan apakah tanggal adalah hari libur nasional/regional. Hari dalam beberapa rentang hari libur juga ditandai.
isPaidTimeOff Fitur biner yang mengambil nilai 1 jika hari tersebut adalah "liburan cuti berbayar" di negara atau wilayah tertentu.

AutoML menggunakan Azure Open Datasets sebagai sumber untuk informasi liburan. Untuk informasi selengkapnya, lihat dokumentasi PublicHolidays .

Untuk lebih memahami pembuatan fitur liburan, pertimbangkan contoh data berikut:

sample_data

Untuk membuat fitur liburan Amerika untuk data ini, kami mengatur country_or_region_for_holiday ke 'AS' dalam pengaturan prakiraan seperti yang ditunjukkan dalam sampel kode berikut:

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'
)

Fitur liburan yang dihasilkan terlihat seperti output berikut:

sample_data_output

Perhatikan bahwa fitur yang dihasilkan memiliki awalan _automl_ yang diawali dengan nama kolomnya. AutoML umumnya menggunakan awalan ini untuk membedakan fitur input dari fitur yang direkayasa.

Langkah berikutnya