Bagaimana cara menerapkan Neural Network ke perkiraan seri waktu?

83

Saya baru mengenal pembelajaran mesin, dan saya telah berusaha mencari tahu bagaimana menerapkan jaringan saraf pada peramalan runtun waktu. Saya telah menemukan sumber daya yang terkait dengan permintaan saya, tetapi sepertinya saya masih sedikit bingung. Saya pikir penjelasan dasar tanpa terlalu banyak detail akan membantu.

Katakanlah saya memiliki beberapa nilai harga untuk setiap bulan selama beberapa tahun, dan saya ingin memprediksi nilai harga baru. Saya bisa mendapatkan daftar harga selama beberapa bulan terakhir, dan kemudian mencoba menemukan tren serupa di masa lalu menggunakan K-Nearest-Neighbor. Saya bisa mereka menggunakan tingkat perubahan atau properti lain dari tren masa lalu untuk mencoba dan memprediksi harga baru. Bagaimana saya bisa menerapkan jaringan saraf untuk masalah yang sama ini adalah apa yang saya coba cari tahu.

solartik
sumber
1
Prediksi menggunakan jaringan saraf dan bayangan bayer di utas Cara yang tepat menggunakan jaringan saraf berulang untuk analisis deret waktu membantu meningkatkan pemahaman saya.
solartis
@solartic, hanya ingin tahu, apakah Anda berhasil menerapkan metode ini?
Saggy Manatee And Swan Folk

Jawaban:

102

Berikut adalah resep sederhana yang dapat membantu Anda memulai menulis kode dan menguji gagasan ...

Anggaplah Anda memiliki data bulanan yang direkam selama beberapa tahun, sehingga Anda memiliki 36 nilai. Mari kita juga berasumsi bahwa Anda hanya peduli tentang memprediksi satu bulan (nilai) di muka.

  1. Analisis data eksplorasi: Menerapkan beberapa metode analisis deret waktu tradisional untuk memperkirakan ketergantungan lag dalam data (misalnya plot korelasi-otomatis dan parsial-korelasi otomatis, transformasi, pembedaan). Katakanlah Anda menemukan nilai bulan tertentu berkorelasi dengan data tiga bulan terakhir tetapi tidak lebih dari itu.
  2. Partisi data Anda ke dalam set pelatihan dan validasi: Ambil 24 poin pertama sebagai nilai pelatihan Anda dan poin lainnya sebagai set validasi.
  3. Buat tata letak jaringan saraf: Anda akan mengambil nilai tiga bulan terakhir sebagai input dan Anda ingin memprediksi nilai bulan berikutnya. Jadi, Anda memerlukan jaringan saraf dengan lapisan input yang mengandung tiga node dan lapisan output yang mengandung satu node. Anda mungkin harus memiliki lapisan tersembunyi dengan setidaknya beberapa node. Sayangnya, memilih jumlah lapisan tersembunyi, dan jumlah masing-masing node, bukanlah sesuatu yang ada pedoman yang jelas. Saya mulai dari yang kecil, seperti 3: 2: 1.
  4. Buat pola pelatihan: Setiap pola pelatihan akan menjadi empat nilai, dengan tiga yang pertama sesuai dengan node input dan yang terakhir mendefinisikan apa nilai yang benar untuk node output. Misalnya, jika data pelatihan Anda adalah nilai maka p a t t e r n 1 : x 1 , x 2 , x 3 , x 4 p a t t e r n 2 : x 2 , x 3 , x 4 , x 5 ... p a t t e r n 21 : x 21
    x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. Latih jaringan saraf pada pola-pola ini
  6. Uji jaringan pada set validasi (bulan 25-36): Di sini Anda akan menyampaikan tiga nilai yang dibutuhkan jaringan saraf untuk lapisan input dan melihat apa yang akan diatur oleh simpul keluaran. Jadi, untuk melihat seberapa baik jaringan saraf yang terlatih dapat memprediksi nilai bulan 32, Anda akan memberikan nilai untuk bulan 29, 30, dan 31

Resep ini jelas tingkat tinggi dan Anda dapat menggaruk kepala Anda pada awalnya ketika mencoba memetakan konteks Anda ke berbagai pustaka / program perangkat lunak. Tapi, semoga ini menggambarkan poin utama: Anda perlu membuat pola pelatihan yang cukup berisi struktur korelasi dari seri yang Anda coba ramalkan. Dan apakah Anda melakukan peramalan dengan jaringan saraf atau model ARIMA, pekerjaan eksplorasi untuk menentukan apa struktur itu sering merupakan bagian yang paling memakan waktu dan sulit.

Dalam pengalaman saya, jaringan saraf dapat memberikan klasifikasi hebat dan fungsionalitas peramalan, tetapi pengaturannya bisa memakan waktu. Dalam contoh di atas, Anda mungkin menemukan bahwa 21 pola pelatihan tidak cukup; transformasi input data yang berbeda mengarah pada perkiraan yang lebih baik / lebih buruk; memvariasikan jumlah lapisan tersembunyi dan simpul lapisan tersembunyi sangat memengaruhi prakiraan; dll.

Saya sangat merekomendasikan melihat situs web neural_forecasting , yang berisi banyak informasi tentang kompetisi peramalan jaringan saraf. The Motivasi Halaman ini sangat berguna.

Josh Hemann
sumber
12
Memberi +1 pada jawaban ini, tetapi juga menambahkan bahwa meskipun 3 bulan terakhir adalah satu-satunya yang berkorelasi dengan jawaban, mungkin ada faktor-faktor seperti bulan yang sama tahun ini dalam 5 tahun terakhir yang merupakan input yang bermanfaat ( misalnya jika Decembers cenderung terlihat seperti Decembers sebelumnya, biasanya).
rossdavidh
1
Jawaban yang bagus Saya menemukan ini sangat membantu. Penjelasan tingkat tinggi adalah persis apa yang saya inginkan. @rossdavidh: Poin bagus +1.
solartis
2
Akan sangat bagus untuk mendapatkan beberapa kode contoh di sini.
Léo Léopold Hertz 준영
1
Yang menarik adalah dataset deret waktu multivarian bersama-sama dengan regressor ..
Tommaso Guerrini
1
Adakah yang tahu beberapa makalah dengan aplikasi untuk data nyata dan perbandingan dengan metode deret waktu "tradisional"?
Marco Fumagalli