Apakah perlu untuk mendrrenden dan mendaur ulang data deret waktu saat menggunakan metode pembelajaran mesin?


9

Sebagai contoh:

Saya ingin meramalkan nilai-nilai masa depan dari suatu seri-waktu berdasarkan nilai-nilai sebelumnya dari beberapa seri-waktu 'menggunakan ANN dan / atau SVM. Input akan menjadi nilai lag dari setiap deret waktu, dan output akan menjadi prakiraan satu langkah di depan (prakiraan dengan cakrawala lebih lanjut akan dilakukan dengan "menggulirkan" prediksi ke depan menggunakan prediksi sebelumnya).

Sekarang, bukankah SVM dan ANN dapat mempelajari tren dan siklus? Apakah mereka tidak akan bisa belajar hal-hal seperti, "dengan semua yang lain sama dengan output dari seri ini harus 2x output sebelumnya?" Atau, jika saya memberikan variabel kategori untuk bulan, "karena ini Januari, bagilah prediksi yang akan saya buat dengan 2?"

Akankah berusaha untuk mendaur ulang dan menurunkan data akan menghasilkan lebih banyak bias daripada yang diperlukan?


1
Dari sudut pandang pembelajaran dan prediksi mesin, cobalah beberapa cara dan lihat mana yang paling berhasil - yaitu menghasilkan prediksi terbaik.
B_Miner

Jawaban:


6

Dengan algoritma pembelajaran mesin, seringkali bermanfaat untuk menggunakan penskalaan fitur atau normalisasi untuk membantu algoritma bertemu dengan cepat selama pelatihan dan untuk menghindari satu set fitur mendominasi yang lain. Ambil contoh, masalah prediksi harga saham. Jika Anda menyertakan saham dengan harga tinggi seperti Apple atau Microsoft bersama dengan beberapa sen dolar, fitur bernilai tinggi yang Anda perlu ekstrak dari Apple dan harga Microsoft akan membanjiri yang Anda ekstrak dari saham sen, dan Anda tidak akan dilatih tentang dasar apel ke apel (tidak ada permainan kata-kata!), dan model yang dilatih mungkin tidak menyamaratakan dengan sangat baik.

Namun, saya "berusaha untuk mendaur ulang dan menurunkan data" akan menjadi hal yang sangat baik untuk dilakukan. Mengekstraksi berbagai komponen siklus dan tren dan menormalkannya dengan mengurangi rata-rata masing-masing dan membaginya dengan standar deviasi akan menempatkan semua data untuk semua deret waktu ke dalam kisaran perkiraan yang sama, dan kemudian Anda akan dilatih untuk menyukai data yang, ketika rescaled dengan membalikkan normalisasi, kemungkinan akan menggeneralisasi jauh lebih baik untuk tujuan prediksi.

Selain itu, untuk deret waktu mana pun, tren cenderung mengubah komponen siklik, sehingga Anda mungkin berakhir dengan pelatihan hanya data tren yang hampir pasti tidak akan berkinerja baik pada deret waktu siklik, dan sebaliknya. Dengan memisahkan dua komponen dan melatih masing-masing dengan SVM atau NN yang terpisah dan kemudian menggabungkan kembali kedua prediksi, Anda mungkin berakhir dengan algoritma yang lebih akurat dan lebih mudah digeneralisasikan.


Ya, lupa bahwa sebagian besar (semua?) Metode standardisasi dan regularisasi mengasumsikan distribusi stasioner. Memisahkan komponen dan membangun model aditif juga merupakan tip yang baik.
ektrules

1
Padahal, sekarang saya bertanya-tanya tentang hilangnya informasi yang menyertai transformasi stasioner. Bagaimana dengan ketika nilai aktual yang tidak dibedakan penting? Misalnya, jika Anda memiliki serangkaian waktu utang dan PDB, maka bedakan keduanya, metode ML hanya dapat membuat mempelajari efek dari perubahan, dan efeknya mungkin berbeda jika utang 10% dari PDB vs 200%. (tentu saja, Anda dapat menambahkan fitur PDB / Hutang).
ektrules

2

Seberapa jauh Anda memperkirakan dibandingkan dengan rentang waktu yang digunakan tren atau siklus? Zhang, Qi 2005 - 'Perkiraan jaringan saraf untuk rangkaian waktu musiman dan tren' menemukan de-musiman dan de-tren (DSDT) bermanfaat, tetapi rentang waktu prediksi mereka sama dengan tren / rentang waktu musiman mereka. Sebaliknya saya telah bekerja pada data di mana saya membuat prediksi skala waktu pendek (misalnya 1 hari) dan tren / musim hanya bertindak atas rentang waktu yang lebih lama. DSDT masih meningkatkan akurasi prediksi saya sampai batas tertentu, tetapi ML dapat mengatasi dengan baik sendiri tanpa DSDT karena tren / musiman secara efektif tidak relevan untuk beberapa titik data terakhir.


1

Saya cukup yakin Anda menggunakan alat yang salah di sini.

Metode ML dibuat untuk interpolasi (seperti memprediksi seri waktu A dari seri waktu B dan C); untuk ekstrapolasi kami memiliki rantai dan teman Markov.

Masalah dengan pendekatan Anda adalah bahwa sangat mudah untuk menyesuaikan model dalam kondisi ini dan, yang lebih buruk, sulit untuk menemukan ini (validasi silang normal akan gagal, sehingga sangat sulit untuk menyesuaikan parameter dengan cara yang tepat, dll. .).
Menambahkan waktu eksplisit ke prediktor juga merupakan ide yang buruk - Saya telah melihat model hanya cocok pada waktu dan keputusan dengan akurasi 90% pada cross-validation dan tebakan acak pada tes pasca-pelatihan-data. Jika Anda membutuhkan waktu, lebih baik untuk memasukkannya sebagai serangkaian deskriptor siklus seperti hari dalam seminggu atau detik lewat tengah malam, jelas tidak pernah melebihi atau bahkan mendekati panjang seri pelatihan Anda.


Anda mungkin benar tentang menggunakan alat yang salah, IDK. Saya belum benar-benar menemukan materi online menggunakan prosedur yang sama seperti yang saya pikirkan. Saya sebenarnya mencoba memprediksi deret waktu dari beberapa deret waktu lainnya (dalam periode yang sama), tetapi saya juga ingin meramalkan masa depan (apa gunanya memprediksi nilai ketika sudah tersedia di waktu prediksi?). Untuk melakukan prediksi bergulir, sebenarnya saya harus memprediksi setiap deret waktu. Saya kira apa yang saya coba lakukan adalah sesuatu seperti Vector Autoregression, tetapi dengan pendekatan ML. Apakah pendekatan ini tidak akan berhasil?
ektrules

Mengapa waktu sebagai variabel prediktor (untuk meramalkan tren daripada siklus) bekerja sangat buruk?
maks

1
Seperti yang saya tulis: 1 / ML buruk dalam ekstrapolasi, 2 / waktu secara unik mengidentifikasi setiap objek, yang memungkinkan overfitting parah dan menghambat pengejaran untuk interaksi aktual.

1
@ MBb Untuk (1), saya pikir hanya metode lokal yang mengerikan dalam ekstrapolasi, sementara metode global mungkin baik-baik saja. Tapi saya bisa melihat bagaimana deret waktu / MC mungkin lebih tepat. Karena (2), saya tidak setuju. Menggunakan pengenal unik akan menghasilkan skor pelatihan yang baik tetapi skor CV yang mengerikan . Jadi, Anda harus dapat menemukan model yang buruk. Masalahnya saya pikir adalah bahwa Anda mungkin masih agak berpakaian dengan CV tradisional karena Anda menggunakan waktu mendatang. Mungkin split-test kereta oleh waktu, dengan tes di akhir, akan lebih masuk akal.
maks

@ Max Ya, saya berpikir tentang CV yang membagi momen secara acak; menggunakan blok waktu terus menerus akan membantu.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.