Gambaran umum metode prakiraan di AutoML
Artikel ini menjelaskan metode yang digunakan AutoML di Azure Pembelajaran Mesin untuk menyiapkan data rangkaian waktu dan membangun model prakiraan. Untuk petunjuk dan contoh tentang model prakiraan pelatihan di AutoML, lihat Menyiapkan AutoML untuk prakiraan rangkaian waktu.
Metode prakiraan di AutoML
AutoML menggunakan beberapa metode untuk memperkirakan nilai rangkaian waktu. Metode ini dapat secara kasar ditetapkan ke dua kategori:
- Model rangkaian waktu yang menggunakan nilai historis dari kuantitas target untuk membuat prediksi ke masa depan
- Regresi, atau penjelasan, model yang menggunakan variabel prediktor untuk memperkirakan nilai target
Misalkan Anda perlu memperkirakan permintaan harian untuk merek jus jeruk tertentu dari toko kelontong. Untuk ekspresi, biarkan $y_t$ mewakili permintaan merek ini pada hari $t$. Model rangkaian waktu memprediksi permintaan pada $t+1$ dengan menggunakan beberapa fungsi permintaan historis dengan ekspresi berikut:
$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$
Fungsi $f$ sering memiliki parameter yang Anda sesuaikan dengan 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 dapat memengaruhi permintaan di masa depan, seperti harga, hari dalam seminggu, dan periode liburan. Pertimbangkan model regresi yang menggunakan variabel prediktor ini dengan ekspresi berikut:
$y = g(\text{price}, \text{day of week}, \text{holiday})$
Sekali lagi, fungsi $g$ umumnya memiliki sekumpulan parameter, termasuk nilai yang mengatur regularisasi, yang disetel AutoML dengan menggunakan nilai permintaan dan prediktor sebelumnya. Anda menghilangkan $t$ dari ekspresi untuk menekankan bahwa model regresi menggunakan pola korelasi antara variabel yang ditentukan secara kontemporer untuk membuat prediksi. Untuk memprediksi $y_{t+1}$ dari $g$, Anda perlu tahu hari mana dalam seminggu yang sesuai dengan $t+1$, apakah hari itu adalah hari libur, dan harga jus jeruk pada hari $t+1$. Dua informasi pertama mudah diidentifikasi dengan menggunakan kalender. Harga eceran umumnya ditetapkan sebelumnya, sehingga harga jus jeruk kemungkinan juga diketahui satu hari sebelumnya. Namun, harga mungkin tidak diketahui 10 hari ke depan. Penting untuk dipahami bahwa utilitas regresi ini dibatasi oleh seberapa jauh ke masa depan Anda membutuhkan prakiraan, juga disebut cakrawala prakiraan, dan untuk tingkat apa Anda 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 ekstra dalam regresi yang disebut 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 adalah permintaan jus yang diamati dari dua hari yang lalu.
Perbedaan penting lainnya antara model rangkaian waktu dan model regresi adalah bagaimana model tersebut menghasilkan prakiraan. Relasi rekursi umumnya menentukan model rangkaian waktu yang 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 dianggap sebagai prakiraan langsung yang menghasilkan semua perkiraan hingga cakrawala dalam satu upaya. Prakiraan langsung dapat lebih disukai daripada metode 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. Untuk informasi selengkapnya, lihat Fitur lag untuk prakiraan rangkaian waktu di AutoML.
Model prakiraan di AutoML
AutoML di Pembelajaran Mesin mengimplementasikan model prakiraan berikut. Untuk setiap kategori, model dicantumkan secara kasar dalam urutan kompleksitas pola yang dapat mereka masukkan, 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 (DNN) dengan jutaan parameter yang dapat disetel, memiliki kapasitas tinggi.
Model rangkaian 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 |
AutoML juga menyertakan model ansambel yang menciptakan kombinasi tertimbang dari model berkinerja terbaik untuk lebih meningkatkan akurasi. Untuk prakiraan, Anda menggunakan ansambel pemungutan suara lunak di mana komposisi dan bobot ditemukan dengan menggunakan Algoritma Pemilihan Caruana Ensemble.
Catatan
Ada dua peringatan penting untuk ansambel model prakiraan:
- TCN saat ini tidak dapat disertakan dalam ansambel.
- Secara default, AutoML menonaktifkan metode stack ensemble , yang disertakan dengan tugas regresi dan klasifikasi default di AutoML. Ansambel tumpukan cocok dengan meta-model pada perkiraan model terbaik untuk menemukan bobot ansambel. Selama tolok ukur internal, strategi ini memiliki peningkatan kecenderungan untuk over fit time series data. Hasil ini dapat mengakibatkan generalisasi yang buruk, sehingga ansambel tumpukan dinonaktifkan secara default. Anda dapat mengaktifkan ansambel dalam konfigurasi AutoML, sesuai kebutuhan.
Cara AutoML menggunakan data Anda
AutoML menerima data rangkaian waktu dalam format "lebar" tabular. Setiap variabel harus memiliki kolom yang sesuai sendiri. AutoML mengharuskan 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 Anda prediksi ke masa depan. Tabel berikut ini memperlihatkan contoh nilai untuk format 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, himpunan 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 |
Contoh kedua mencakup SKU, harga ritel, dan bendera untuk menunjukkan apakah item diiklankan selain tanda waktu dan kuantitas target. Himpunan data kedua mengungkapkan dua seri: satu untuk SKU JUICE1 dan satu untuk SKU BREAD3. Kolom SKU adalah kolom ID rangkaian waktu karena pengelompokan menurut nilai kolom ini menghasilkan 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 memberikan data validasi, jumlah minimum pengamatan pelatihan yang diperlukan per rangkaian waktu dinyatakan sebagai berikut:
$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
Dalam ekspresi ini, $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 dinyatakan sebagai berikut:
$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
Dalam versi ini, $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. Untuk informasi selengkapnya tentang validasi silang untuk prakiraan, lihat Pemilihan model di AutoML.
Penanganan data yang hilang
Model rangkaian waktu di AutoML memerlukan pengamatan ruang secara teratur tepat waktu, yang mencakup kasus seperti pengamatan bulanan atau tahunan di mana jumlah hari antara pengamatan dapat bervariasi. Sebelum proses pemodelan dimulai, AutoML harus memastikan tidak ada nilai seri yang hilang dan bahwa pengamatan teratur. Akibatnya, 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 mengimpikan nilai yang hilang dengan menggunakan teknik umum yang dapat dikonfigurasi. Tabel berikut ini memperlihatkan contoh baris yang diharapkan yang hilang:
rentang waktu | kuantitas |
---|---|
2012-01-01 | 100 |
2012-01-03 | 106 |
2012-01-04 | 103 |
... | ... |
2013-12-31 | 347 |
Seri ini secara ostensib memiliki frekuensi harian, tetapi tidak ada pengamatan untuk 2 Januari 2012 (2012-01-02). Dalam hal ini, AutoML mencoba mengisi data dengan menambahkan baris baru untuk nilai yang hilang. Nilai baru untuk quantity
kolom, dan kolom lain dalam data, kemudian diimputasi seperti nilai lain yang hilang. Untuk menjalankan proses ini, AutoML harus mengenali frekuensi seri untuk dapat mengisi celah pengamatan seperti yang ditunjukkan dalam kasus ini. AutoML secara otomatis mendeteksi frekuensi ini, atau, secara opsional, pengguna dapat menyediakannya dalam konfigurasi.
Metode imputasi untuk menyediakan nilai yang hilang dapat dikonfigurasi dalam input. Tabel berikut mencantumkan metode default:
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 lain 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 item default atau opsional.
Fitur rekayasa default:
- Fitur kalender yang berasal dari indeks waktu, seperti hari dalam seminggu
- Fitur kategoris yang berasal dari ID rangkaian waktu
- Pengodean jenis kategoris ke jenis numerik
Fitur rekayasa opsional:
- Fitur indikator untuk hari libur yang terkait dengan wilayah tertentu
- Jeda kuantitas target
- Lag kolom fitur
- Agregasi jendela bergulir, seperti rata-rata bergulir, dari kuantitas target
- Dekomposisi musiman ((Dekomposisi Musiman dan Tren dengan menggunakan Loess (STL))
Anda dapat mengonfigurasi fiturisasi dari AutoML SDK dengan menggunakan kelas ForecastingJob atau dari antarmuka web studio Azure Pembelajaran Mesin.
Deteksi dan penanganan rangkaian waktu nonstationary
Rangkaian waktu di mana perubahan rata-rata dan varians dari waktu ke waktu disebut non-stasioner. Rangkaian waktu yang menunjukkan tren stochastic bersifat nonstationary.
Gambar berikut menyajikan visualisasi untuk skenario ini. Bagan memplot seri yang umumnya sedang tren ke atas. Jika Anda menghitung dan membandingkan nilai rata-rata (rata-rata) untuk paruh pertama dan kedua seri, Anda dapat mengidentifikasi perbedaannya. Rata-rata seri di paruh pertama plot lebih kecil dari rata-rata di babak kedua. Fakta bahwa rata-rata seri tergantung pada interval waktu yang ditinjau adalah contoh momen yang bervariasi waktu. Dalam skenario ini, rata-rata seri adalah momen pertama.
Gambar berikutnya memperlihatkan bagan 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. Skenario ini menunjukkan contoh rangkaian waktu stasioner urutan pertama:
Model regresi AutoML secara inheren tidak dapat menangani tren stochastic atau masalah terkenal lainnya yang terkait dengan rangkaian waktu nonstationary. Akibatnya, akurasi prakiraan di luar sampel bisa buruk ketika tren tersebut ada.
AutoML secara otomatis menganalisis himpunan data rangkaian waktu untuk menentukan tingkat atau stasioneritasnya. Ketika rangkaian waktu nonstationary terdeteksi, AutoML menerapkan transformasi yang berbeda secara otomatis untuk mengurangi efek perilaku nonstationary.
Pembersihan model
Setelah data disiapkan dengan penanganan data dan rekayasa fitur yang hilang, AutoML menyapu sekumpulan model dan hyper-parameter dengan 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. Untuk informasi selengkapnya, lihat Sapuan model dan pilihan untuk prakiraan di AutoML.
Pengelompokan model
Saat himpunan data berisi lebih dari satu rangkaian waktu, ada beberapa cara untuk memodelkan data. Anda dapat mengelompokkan menurut data di kolom ID rangkaian waktu dan melatih model independen untuk setiap seri. Pendekatan yang lebih umum adalah mempartisi data ke dalam grup yang masing-masing dapat berisi beberapa seri (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.
Berikut adalah cara setiap jenis model menggunakan grup:
Setiap seri dalam grup terpisah (1:1): Naif, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet
Semua seri dalam grup yang sama (N:1): 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 dengan menggunakan banyak solusi model di AutoML. Untuk informasi selengkapnya, lihat Banyak Model - Notebook ML otomatis.