Perkiraan Time Series dengan TensorFlow: Komponen, Model & Langkah
Diterbitkan: 2021-05-02Daftar isi
Apa itu Peramalan Deret Waktu?
Tahukah Anda bahwa Asia Pasifik adalah pasar pembelajaran mendalam terbesar yang berkembang secara global dengan CAGR (Compound Annual Growth Rate) lebih dari 40%? Prediksi TensorFlow deret waktu adalah konsep penting dalam pembelajaran mendalam & ML. Semua model deep learning/ML memiliki dataset masing-masing yang merupakan kumpulan observasi. Pengamatan ini sering menyertakan komponen waktu. Deret waktu mengatur pengamatan secara berurutan dalam waktu, sehingga menambahkan dimensi baru ke dataset, yaitu waktu.
Orang mungkin berpikir tentang apa yang akan dicapai dengan meningkatkan dimensi dataset mereka? Nah, menambahkan dimensi waktu ke kumpulan data Anda akan menciptakan tingkat ketergantungan yang mendetail di antara pengamatan. Hasilnya kemudian diprediksi dengan bantuan peramalan deret waktu dari pengamatan sebelumnya.
Penggunaan data deret waktu (historis data) untuk memprediksi masa depan disebut peramalan deret waktu. Seseorang juga harus memastikan bahwa masa depan harus benar-benar tidak diketahui dan hanya dapat diprediksi berdasarkan data historis.
Data deret waktu dianalisis untuk mengembangkan model yang menggambarkan data secara efektif. Deret waktu didekomposisi menjadi beberapa komponen untuk mengembangkan model yang tepat. Setelah model yang paling menggambarkan data historis dikembangkan, model tersebut kemudian digunakan untuk peramalan. Seseorang tidak boleh mengacaukan analisis deret waktu dengan peramalan deret waktu karena yang terakhir mulai beraksi hanya ketika yang pertama selesai.
Komponen Deret Waktu
Sebelum mengetahui tentang peramalan deret waktu TensorFlow , Anda harus mengetahui komponen deret waktu. Sebuah deret waktu didekomposisi menjadi empat komponen selama analisis deret waktu. Komponen-komponen ini membantu dalam memahami dataset dengan benar. Empat komponen deret waktu adalah sebagai berikut:
- Tren – Perilaku rangkaian/set data dari waktu ke waktu dijelaskan oleh tren. Perilaku meningkat dan menurun dari deret waktu dijelaskan oleh tren.
- Level – Level adalah nilai dasar dari deret waktu, mengingat representasi deret adalah garis lurus. Banyak ahli juga mendefinisikan level sebagai nilai rata-rata dari deret tersebut.
- Musiman – Perilaku dari rangkaian yang diulang dari waktu ke waktu disebut musiman. Beberapa ahli juga menyebut musim sebagai fluktuasi periodik.
- Kebisingan – Setiap kumpulan data berisi beberapa titik data/pencilan yang tidak dapat dijelaskan oleh model deret waktu. Kumpulan data ini memiliki sifat yang tidak dapat diprediksi dan tidak dapat dipetakan melalui analisis/peramalan deret waktu.
Satu harus dicatat bahwa deret waktu harus memiliki tingkat dan beberapa kebisingan. Namun, tren dan musiman dalam deret waktu bersifat opsional.
Mengapa TensorFlow?
Meskipun ada banyak kerangka kerja yang tersedia di pasar untuk peramalan deret waktu, profesional teknologi mendalam lebih memilih TensorFlow dari semua kerangka kerja yang tersedia. TensorFlow ditulis dengan Python, C++, dan CUDA yang merupakan salah satu bahasa pemrograman yang banyak digunakan. TensorFlow adalah pustaka perangkat lunak sumber terbuka yang dirancang khusus untuk pembelajaran mesin dan pembelajaran mendalam.
TensorFlow membantu kami membuat model ML selama analisis deret waktu yang akan digunakan untuk perkiraan. Ini menawarkan pengguna untuk membangun berbagai jenis model seperti CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), dll. TensorFlow dapat membantu Anda memperkirakan satu atau beberapa langkah waktu tergantung pada pengguna dan kumpulan data. Saat membuat perkiraan TensorFlow deret waktu , Anda dapat:
- Perkiraan satu fitur/dimensi untuk satu langkah waktu.
- Perkirakan semua dimensi kumpulan data untuk satu langkah waktu.
- Prakiraan untuk beberapa langkah dalam satu bidikan (membuat semua prediksi sekaligus).
- Prakiraan untuk beberapa langkah di mana satu prediksi dibuat pada satu waktu (autoregresif).
Menyiapkan Data untuk Peramalan Deret Waktu
Sebelum peramalan deret waktu, kita perlu menyiapkan data yang sesuai. Penyiapan untuk peramalan deret waktu mencakup berbagai proses seperti ekstraksi data, visualisasi, eksplorasi , pembersihan, dll. Mari kita lihat langkah-langkah di balik penyiapan data untuk peramalan deret waktu:
- Langkah dasarnya adalah mengimpor data atau mengekstrak data. Anda harus memiliki kumpulan data yang darinya wawasan kaya akan diekstraksi menggunakan perkiraan deret waktu.
- Langkah selanjutnya adalah pembersihan data, di mana Anda menghapus titik data duplikat atau tidak relevan. Data yang hilang juga ditangani pada langkah ini. Jika ada outlier yang ditemukan lebih awal, hapus dari dataset. Kesalahan struktural juga dapat diperbaiki dengan pembersihan data.
- Kuantitas dalam deret waktu yang bervariasi dengan waktu disebut sebagai sinyal. Sinyal-sinyal ini juga mewakili berbagai peristiwa fisik dalam rangkaian waktu. Misalnya, jika ada rangkaian waktu deskripsi cuaca dari lokasi mana pun selama hari yang berbeda, maka sinyalnya akan berupa peristiwa fisik seperti suhu, curah hujan, dll. Lanjutkan dengan mengubah sinyal dalam format sin cos.
- Selain mengubah sinyal menjadi format sin cos, ubah waktu & tanggal menjadi detik. Setelah selesai, plot waktu dan fungsi sin cos.
- Sebelum meramalkan dan melatih data kami, kami akan membagi data berdasarkan waktu untuk penyederhanaan lebih lanjut.
- Data sekarang akan dinormalisasi sebelum pelatihan. Langkah paling sederhana untuk normalisasi data adalah dengan mengurangi mean dari dataset dari setiap titik data dan kemudian membaginya dengan standar deviasi.
- Setelah Anda selesai dengan normalisasi data, Anda harus memeriksa bias data. Bias data didefinisikan sebagai suatu kondisi di mana beberapa elemen dari kumpulan data sangat terwakili dibandingkan dengan elemen lainnya. Data yang bias menghasilkan akurasi yang lebih rendah bersama dengan analitik yang miring. Anda dapat memplot plot biola untuk menghilangkan bias data yang ada di dataset Anda.
Jendela Data
Anda pasti bertanya-tanya bahwa ada banyak proses yang terlibat sebelum peramalan deret waktu. Nah, para penggemar teknologi muda harus tahu bahwa persiapan data adalah langkah penting sebelum melatih atau menganalisis data. Data windowing adalah langkah terakhir dalam menyiapkan data untuk perkiraan TensorFlow deret waktu . Data windowing membantu dalam menggunakan data dengan berbagai model tanpa masalah.
Misalnya, jika model memprediksi 1 jam ke depan, Anda memerlukan jendela data historis 6 jam untuk memprediksi secara efektif. Jendela data historis disebut sebagai 'lebar input' sedangkan jendela data yang akan diprediksi disebut sebagai 'offset' selama jendela data.
Lihat : Proyek Tensorflow Paling Populer
Model Langkah Tunggal TensorFlow
Jika Anda memiliki kumpulan data yang paling sederhana dan hanya memprediksi satu langkah waktu di masa mendatang, Anda akan menggunakan model langkah tunggal TensorFlow. Misalnya, jika Anda telah membuat jendela data 'jam', lalu memprediksi satu langkah waktu, artinya Anda memprediksi satu jam di masa mendatang. Objek 'WindowGenerator' dibuat di TensorFlow untuk mengembangkan pasangan langkah tunggal, yaitu input dan label.
Disarankan juga untuk membuat model dasar sebelum melatih model Anda. Membuat model dasar akan membantu Anda membandingkan model satu langkah awal dengan model rumit di masa depan. Misalnya, jika Anda memprediksi suhu selama 1 jam ke depan, buat model dasar yang mengembalikan suhu saat ini sebagai prediksi (tidak ada perubahan).
Karena suhu berubah perlahan dari waktu ke waktu, adalah mungkin untuk tidak mengalami perubahan suhu setelah satu jam. Perhatikan bahwa model dasar tidak akan efektif saat memprediksi beberapa langkah waktu.
Contoh lain untuk membuat model timestep tunggal menggunakan TensorFlow adalah dengan menyisipkan transformasi linier antara input dan output. Pastikan output hanya bergantung pada satu langkah waktu yang akan dievaluasi saat membuat model linier menggunakan TensorFlow. Model padat adalah model satu langkah lainnya yang dibuat menggunakan TensorFlow.
Jaringan saraf konvolusi melalui TensorFlow juga dapat digunakan untuk memprediksi satu langkah waktu. Lapisan konvolusi di TensorFlow akan mengambil beberapa langkah waktu sebagai masukan untuk memprediksi langkah waktu. RNN juga digunakan secara luas untuk peramalan deret waktu.
Status internal mesin juga melompat dari satu langkah ke langkah lainnya karena RNN memproses deret waktu langkah demi langkah (secara default). Peramalan TensorFlow deret waktu melalui RNN adalah pilihan yang baik karena model RNN cenderung mengingat riwayat input yang panjang (data historis).
Model Multi-Langkah TensorFlow
Dalam model multi-langkah, prediksi dibuat selama rentang waktu. Tidak seperti model satu langkah, model multi-langkah memprediksi rentang nilai masa depan menggunakan data historis. Model multi-langkah dapat memprediksi seluruh rangkaian waktu di masa mendatang sekaligus melalui prediksi satu bidikan. Anda juga dapat menggunakan prediksi autoregressive, di mana model membuat prediksi satu langkah dalam satu waktu. Hasil prediksi satu langkah pada prediksi autoregressive berfungsi sebagai input untuk prediksi langkah waktu berikutnya.
Kesimpulan
Prediksi TensorFlow deret waktu memberikan hasil yang akurat dibandingkan dengan kerangka kerja lainnya. Kami membahas beberapa model satu langkah (CNN, RNN, Dense, dll.) yang dapat digunakan untuk prediksi satu langkah melalui TensorFlow.
Anda juga dapat memprediksi rentang nilai masa depan dengan menggunakan model multi-langkah. Perlu diperhatikan juga bahwa persiapan data adalah langkah penting sebelum prediksi rangkaian waktu TensorFlow . Anda dapat mempelajari lebih lanjut tentang prediksi deret waktu di DL (Deep Learning) dan ML dengan memilih Program Sertifikat Tingkat Lanjut upGrad di DL & ML . Mulai pelajari perkiraan deret waktu dengan TensorFlow!
Apa batasan penggunaan TensorFlow?
Meskipun TensorFlow mengurangi panjang kode, itu juga membuat kode sedikit rumit. Dibandingkan dengan pesaingnya, TensorFlow lambat dan juga kurang bermanfaat. TensorFlow ketinggalan zaman dalam hal menawarkan loop simbolis untuk urutan yang tidak terbatas. TensorFlow hanya memiliki dukungan GPU NVIDIA dan dukungan pemrograman GPU Python. Itu tidak memiliki bentuk dukungan lain. Itu tidak memiliki banyak keuntungan bagi pengguna Sistem Operasi Windows.
Amplitudo diskontinuitas di perbatasan setiap urutan hingga yang direkam oleh digitizer dikurangi dengan windowing. Sistem windowing memungkinkan banyak aplikasi untuk berbagi tampilan grafis dan sumber daya presentasi komputer secara bersamaan. Anda mungkin ingin menggunakan banyak aplikasi sekaligus di komputer dengan antarmuka pengguna grafis (GUI).
Apakah sulit mempelajari TensorFlow?
TensorFlow mudah bagi sebagian orang, sementara beberapa orang menganggapnya sulit untuk dipelajari. Jika Anda memiliki pengetahuan sebelumnya tentang berbagai bahasa pemrograman dan Anda mengenal berbagai teknik pembelajaran mesin, maka mempelajari TensorFlow akan mudah bagi Anda. Namun, tingkat kesulitannya juga tergantung minat Anda. Jika Anda benar-benar tertarik dengan TensorFlow, mempelajarinya bukanlah tugas yang sulit.