Bagikan melalui


Gambaran umum metode prakiraan di AutoML

Artikel ini berfokus pada metode yang digunakan AutoML untuk menyiapkan data rangkaian waktu dan membangun model prakiraan. Instruksi dan contoh untuk model prakiraan pelatihan di AutoML dapat ditemukan di artikel prakiraan AutoML untuk rangkaian waktu kami.

AutoML menggunakan beberapa metode untuk memperkirakan nilai rangkaian waktu. Metode ini dapat secara kasar ditetapkan ke dua kategori:

  1. Model rangkaian waktu yang menggunakan nilai historis dari kuantitas target untuk membuat prediksi ke masa depan.
  2. Regresi, atau penjelasan, model yang menggunakan variabel prediktor untuk memperkirakan nilai target.

Sebagai contoh, pertimbangkan masalah prakiraan permintaan harian untuk merek jus jeruk tertentu dari toko kelontong. Biarkan $y_t$ mewakili permintaan merek ini pada hari $t$. Model rangkaian waktu memprediksi permintaan pada $t+1$ menggunakan beberapa fungsi permintaan historis,

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

Fungsi $f$ sering memiliki parameter yang kita sesuaikan menggunakan permintaan yang diamati dari masa lalu. Jumlah riwayat yang $f$ gunakan untuk membuat prediksi, $s$, juga dapat dianggap sebagai parameter model.

Model rangkaian waktu dalam contoh permintaan jus jeruk mungkin tidak cukup akurat karena hanya menggunakan informasi tentang permintaan sebelumnya. Ada banyak faktor lain yang kemungkinan memengaruhi permintaan di masa depan seperti harga, hari dalam seminggu, dan apakah itu liburan atau tidak. Pertimbangkan model regresi yang menggunakan variabel prediktor ini,

$y = g(\text{price}, \text{day of week}, \text{holiday})$.

Sekali lagi, $g$ umumnya memiliki sekumpulan parameter, termasuk yang mengatur regularisasi, yang disetel AutoML menggunakan nilai permintaan sebelumnya dan prediktor. Kami menghilangkan $t$ dari ekspresi untuk menekankan bahwa model regresi menggunakan pola korelasi antara variabel yang ditentukan secara kontemporer untuk membuat prediksi. Artinya, untuk memprediksi $y_{t+1}$ dari $g$, kita harus tahu hari mana dalam seminggu $t + 1 $ jatuh pada, apakah itu liburan, dan harga jus jeruk pada hari $t + 1 $ . Dua informasi pertama selalu mudah ditemukan dengan berkonsultasi dengan kalender. Harga eceran biasanya ditetapkan terlebih dahulu, sehingga harga jus jeruk kemungkinan juga diketahui satu hari ke depan. Namun, harga mungkin tidak diketahui 10 hari ke depan! Penting untuk dipahami bahwa utilitas regresi ini dibatasi oleh seberapa jauh ke masa depan kita membutuhkan perkiraan, juga disebut cakrawala prakiraan, dan untuk tingkat apa kita tahu nilai masa depan prediktor.

Penting

Model regresi prakiraan AutoML mengasumsikan bahwa semua fitur yang disediakan oleh pengguna diketahui di masa depan, setidaknya hingga cakrawala prakiraan.

Model regresi prakiraan AutoML juga dapat ditambah untuk menggunakan nilai historis target dan prediktor. Hasilnya adalah model hibrid dengan karakteristik model rangkaian waktu dan model regresi murni. Jumlah historis adalah variabel prediktor tambahan dalam regresi dan kami menyebutnya sebagai jumlah yang tertinggal. Urutan jeda mengacu pada seberapa jauh nilai diketahui. Misalnya, nilai saat ini dari lag order-two target untuk contoh permintaan jus jeruk kami adalah permintaan jus yang diamati dari dua hari yang lalu.

Perbedaan penting lainnya antara model rangkaian waktu dan model regresi adalah cara mereka menghasilkan prakiraan. Model rangkaian waktu umumnya didefinisikan oleh relasi rekursi dan menghasilkan prakiraan satu per satu. Untuk memperkirakan banyak periode ke masa depan, mereka melakukan iterasi ke cakrawala prakiraan, memberi makan prakiraan sebelumnya kembali ke model untuk menghasilkan prakiraan satu periode ke depan berikutnya sesuai kebutuhan. Sebaliknya, model regresi disebut prakiraan langsung yang menghasilkan semua perkiraan hingga cakrawala dalam sekali jalan. Prakiraan langsung dapat lebih disukai daripada yang rekursif karena model rekursif menggabungkan kesalahan prediksi ketika mereka memberi umpan prakiraan sebelumnya kembali ke model. Ketika fitur jeda disertakan, AutoML membuat beberapa modifikasi penting pada data pelatihan sehingga model regresi dapat berfungsi sebagai prakiraan langsung. Lihat artikel fitur jeda untuk detail selengkapnya.

Model prakiraan di AutoML

Tabel berikut mencantumkan model prakiraan yang diterapkan di AutoML dan kategori apa yang termasuk dalamnya:

Model Deret Waktu Model Regresi
Naif, Naif Musiman, Rata-rata, Rata-rata Musiman, ARIMA(X), Smoothing Eksponensial SGD linier, LARS LASSO, Jaring Elastis, Nabi, K Tetangga Terdekat, Pohon Keputusan, Hutan Acak, Pohon yang Sangat Acak, Pohon Yang Ditingkatkan Gradien, LightGBM, XGBoost, TCNForecaster

Model di setiap kategori dicantumkan secara kasar dalam urutan kompleksitas pola yang dapat mereka gabungkan, juga dikenal sebagai kapasitas model. Model Naive, yang hanya memperkirakan nilai terakhir yang diamati, memiliki kapasitas rendah sementara Temporal Convolutional Network (TCNForecaster), jaringan neural mendalam dengan jutaan parameter yang dapat disetel, memiliki kapasitas tinggi.

Yang penting, AutoML juga menyertakan model ansambel yang menciptakan kombinasi tertimbang dari model berkinerja terbaik untuk lebih meningkatkan akurasi. Untuk prakiraan, kami menggunakan ansambel pemungutan suara yang lembut di mana komposisi dan bobot ditemukan melalui Algoritma Pemilihan Caruana Ensemble.

Catatan

Ada dua peringatan penting untuk ansambel model prakiraan:

  1. TCN saat ini tidak dapat disertakan dalam ansambel.
  2. AutoML secara default menonaktifkan metode ansambel lain, ansambel tumpukan, yang disertakan dengan tugas regresi dan klasifikasi default di AutoML. Ansambel tumpukan cocok dengan meta-model pada perkiraan model terbaik untuk menemukan bobot ansambel. Kami telah menemukan dalam tolok ukur internal bahwa strategi ini memiliki peningkatan kecenderungan untuk melebihi data rangkaian waktu yang sesuai. Ini dapat mengakibatkan generalisasi yang buruk, sehingga ansambel tumpukan dinonaktifkan secara default. Namun, ini dapat diaktifkan jika diinginkan dalam konfigurasi AutoML.

Cara AutoML menggunakan data Anda

AutoML menerima data rangkaian waktu dalam format tabular, "lebar"; artinya, setiap variabel harus memiliki kolom yang sesuai sendiri. AutoML mengharuskan salah satu kolom menjadi sumbu waktu untuk masalah prakiraan. Kolom ini harus dapat diurai ke dalam jenis tanggalwaktu. Himpunan data rangkaian waktu paling sederhana terdiri dari kolom waktu dan kolom target numerik. Targetnya adalah variabel yang ingin diprediksi ke masa depan. Berikut ini adalah contoh format dalam kasus sederhana ini:

rentang waktu kuantitas
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

Dalam kasus yang lebih kompleks, data mungkin berisi kolom lain yang selaras dengan indeks waktu.

rentang waktu SKU harga Diiklankan kuantitas
2012-01-01 JUS1 3.5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUS1 3.5 0 97
2012-01-02 BREAD3 5.5 1 68
... ... ... ... ...
2013-12-31 JUS1 3.75 0 347
2013-12-31 BREAD3 5.7 0 94

Dalam contoh ini, ada SKU, harga eceran, dan bendera yang menunjukkan apakah item diiklankan selain tanda waktu dan kuantitas target. Ada dua seri dalam himpunan data ini - satu untuk SKU JUICE1 dan satu untuk SKU BREAD3; SKU kolom adalah kolom ID rangkaian waktu karena pengelompokan menurut kolom tersebut memberikan dua grup yang masing-masing berisi satu seri. Sebelum menyapu model, AutoML melakukan validasi dasar konfigurasi input dan data dan menambahkan fitur yang direkayasa.

Persyaratan panjang data

Untuk melatih model prakiraan, Anda harus memiliki sejumlah data historis yang memadai. Kuantitas ambang batas ini bervariasi menurut konfigurasi pelatihan. Jika Anda telah memberikan data validasi, jumlah minimum pengamatan pelatihan yang diperlukan per rangkaian waktu diberikan oleh,

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

di mana $H$ adalah horizon prakiraan, $l_{\text{max}}$ adalah urutan jeda maksimum, dan $s_{\text{window}}$ adalah ukuran jendela untuk fitur agregasi bergulir. Jika Anda menggunakan validasi silang, jumlah minimum pengamatan adalah,

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

di mana $n_{\text{CV}}$ adalah jumlah lipatan validasi silang dan $n_{\text{step}}$ adalah ukuran langkah CV, atau offset antara lipatan CV. Logika dasar di balik rumus ini adalah Anda harus selalu memiliki setidaknya cakrawala pengamatan pelatihan untuk setiap rangkaian waktu, termasuk beberapa padding untuk jeda dan pemisahan validasi silang. Lihat pemilihan model prakiraan untuk detail selengkapnya tentang validasi silang untuk prakiraan.

Penanganan data yang hilang

Model rangkaian waktu AutoML memerlukan pengamatan ruang secara teratur tepat waktu. Secara teratur, di sini, termasuk kasus-kasus seperti pengamatan bulanan atau tahunan di mana jumlah hari antara pengamatan dapat bervariasi. Sebelum pemodelan, AutoML harus memastikan tidak ada nilai seri yang hilang dan bahwa pengamatan teratur. Oleh karena itu, ada dua kasus data yang hilang:

  • Nilai hilang untuk beberapa sel dalam data tabular
  • Baris hilang yang sesuai dengan pengamatan yang diharapkan mengingat frekuensi rangkaian waktu

Dalam kasus pertama, AutoML mengimuteasikan nilai yang hilang menggunakan teknik umum yang dapat dikonfigurasi.

Contoh baris yang hilang dan diharapkan diperlihatkan dalam tabel berikut:

rentang waktu kuantitas
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

Seri ini memiliki frekuensi harian, tetapi tidak ada pengamatan untuk 2 Januari 2012. Dalam hal ini, AutoML akan mencoba mengisi data dengan menambahkan baris baru untuk Jan. 2, 2012. Nilai baru untuk quantity kolom, dan kolom lain dalam data, kemudian akan diimputasi seperti nilai lain yang hilang. Yang jelas, AutoML harus mengetahui frekuensi seri untuk mengisi celah pengamatan seperti ini. AutoML secara otomatis mendeteksi frekuensi ini, atau, secara opsional, pengguna dapat menyediakannya dalam konfigurasi.

Metode imputasi untuk mengisi nilai yang hilang dapat dikonfigurasi dalam input. Metode default tercantum dalam tabel berikut:

Jenis Kolom Metode Imputasi Default
Target Teruskan isi (pengamatan terakhir diteruskan)
Fitur Numerik Nilai median

Nilai yang hilang untuk fitur kategoris ditangani selama pengodean numerik dengan menyertakan kategori tambahan yang sesuai dengan nilai yang hilang. Imputasi implisit dalam kasus ini.

Rekayasa fitur otomatis

AutoML umumnya menambahkan kolom baru ke data pengguna untuk meningkatkan akurasi pemodelan. Fitur yang direkayasa dapat mencakup hal-hal berikut:

Grup Fitur Default/Opsional
Fitur kalender yang berasal dari indeks waktu (misalnya, hari dalam seminggu) Default
Fitur kategoris yang berasal dari ID rangkaian waktu Default
Pengodean jenis kategoris ke jenis numerik Default
Fitur indikator untuk hari libur yang terkait dengan negara atau wilayah tertentu Opsional
Jeda kuantitas target Opsional
Lag kolom fitur Opsional
Agregasi jendela bergulir (misalnya, rata-rata bergulir) dari kuantitas target Opsional
Dekomposisi musiman (STL) Opsional

Anda dapat mengonfigurasi fiturisasi dari AutoML SDK melalui kelas ForecastingJob atau dari antarmuka web studio Azure Pembelajaran Mesin.

Deteksi dan penanganan rangkaian waktu non-stasioner

Rangkaian waktu di mana perubahan rata-rata dan varians dari waktu ke waktu disebut non-stasioner. Misalnya, rangkaian waktu yang menunjukkan tren stochastic bersifat non-stasioner. Untuk memvisualisasikan ini, gambar berikut memplot seri yang umumnya sedang tren ke atas. Sekarang, komputasi dan bandingkan nilai rata-rata (rata-rata) untuk paruh pertama dan kedua seri. Apakah keduanya sama? Di sini, rata-rata seri di paruh pertama plot secara signifikan lebih kecil daripada pada paruh kedua. Fakta bahwa rata-rata seri tergantung pada interval waktu yang dilihat, adalah contoh momen yang bervariasi waktu. Di sini, rata-rata seri adalah saat pertama.

Diagram showing retail sales for a non-stationary time series.

Selanjutnya, mari kita periksa gambar berikut, yang memplot seri asli dalam perbedaan pertama, $\Delta y_{t} = y_t - y_{t-1}$. Rata-rata seri kira-kira konstan selama rentang waktu sementara variansnya tampak bervariasi. Dengan demikian, ini adalah contoh rangkaian waktu stasioner pesanan pertama.

Diagram showing retail sales for a weakly stationary time series.

Model regresi AutoML secara inheren tidak dapat menangani tren stochastic, atau masalah terkenal lainnya yang terkait dengan rangkaian waktu non-stasioner. Akibatnya, akurasi prakiraan di luar sampel bisa buruk jika tren tersebut ada.

AutoML secara otomatis menganalisis himpunan data rangkaian waktu untuk menentukan stasioneritas. Ketika rangkaian waktu non-stasioner terdeteksi, AutoML menerapkan transformasi yang berbeda secara otomatis untuk mengurangi dampak perilaku non-stasioner.

Pembersihan model

Setelah data disiapkan dengan penanganan data dan rekayasa fitur yang hilang, AutoML menyapu sekumpulan model dan parameter hiper menggunakan layanan rekomendasi model. Model diberi peringkat berdasarkan metrik validasi atau validasi silang dan kemudian, secara opsional, model teratas dapat digunakan dalam model ansambel. Model terbaik, atau salah satu model terlatih, dapat diperiksa, diunduh, atau disebarkan untuk menghasilkan prakiraan sesuai kebutuhan. Lihat artikel pembersihan dan pemilihan model untuk detail selengkapnya.

Pengelompokan model

Saat himpunan data berisi lebih dari satu rangkaian waktu, seperti dalam contoh data yang diberikan, ada beberapa cara untuk memodelkan data tersebut. Misalnya, kita hanya dapat mengelompokkan berdasarkan kolom ID rangkaian waktu dan melatih model independen untuk setiap seri. Pendekatan yang lebih umum adalah mempartisi data ke dalam grup yang masing-masing mungkin berisi beberapa seri yang kemungkinan terkait dan melatih model per grup. Secara default, prakiraan AutoML menggunakan pendekatan campuran untuk pengelompokan model. Model rangkaian waktu, ditambah ARIMAX dan Prophet, menetapkan satu seri ke satu grup dan model regresi lainnya menetapkan semua seri ke satu grup. Tabel berikut ini meringkas pengelompokan model dalam dua kategori, satu-ke-satu dan banyak-ke-satu:

Setiap Seri dalam Grup Sendiri (1:1) Semua Seri dalam Grup Tunggal (N:1)
Naif, Naif Musiman, Rata-rata, Rata-rata Musiman, Smoothing Eksponensial, ARIMA, ARIMAX, Nabi SGD Linier, LARS LASSO, Jaring Elastis, K Tetangga Terdekat, Pohon Keputusan, Hutan Acak, Pohon yang Sangat Acak, Pohon Yang Ditingkatkan Gradien, LightGBM, XGBoost, TCNForecaster

Pengelompokan model yang lebih umum dimungkinkan melalui solusi Banyak Model AutoML; lihat buku catatan ML Kami yang Banyak Model Otomatis.

Langkah berikutnya

  • Pelajari tentang model pembelajaran mendalam untuk prakiraan di AutoML
  • Pelajari selengkapnya tentang pembersihan dan pemilihan model untuk prakiraan di AutoML.
  • Pelajari tentang cara AutoML membuat fitur dari kalender.
  • Pelajari tentang cara AutoML membuat fitur jeda.
  • Baca jawaban atas tanya jawab umum tentang prakiraan di AutoML.