Memisahkan Data Seri Waktu ke dalam Train / Test / Validation Set

11

Apa cara terbaik untuk membagi data deret waktu ke dalam rangkaian kereta / tes / validasi, di mana set validasi akan digunakan untuk penyetelan hyperparameter?

Kami memiliki data penjualan harian senilai 3 tahun, dan rencana kami akan menggunakan 2015-2016 sebagai data pelatihan, kemudian secara acak sampel 10 minggu dari data 2017 untuk digunakan sebagai set validasi, dan 10 minggu lagi dari data 2017 untuk set tes. Kami kemudian akan melakukan langkah maju pada setiap hari dalam rangkaian ujian dan validasi.

merax
sumber

Jawaban:

7

Anda harus menggunakan split berdasarkan waktu untuk menghindari bias pandangan ke depan. Latih / validasi / uji dalam urutan ini berdasarkan waktu.

Set tes harus menjadi bagian data terbaru. Anda perlu mensimulasikan situasi dalam lingkungan produksi, di mana setelah pelatihan model Anda mengevaluasi data yang datang setelah waktu pembuatan model. Sampel acak yang Anda gunakan untuk validasi dan pelatihan karenanya bukan ide yang baik.

angin
sumber
4

Saya pikir cara paling lengkap untuk memanfaatkan data deret waktu Anda untuk pelatihan / validasi / pengujian / prediksi adalah ini:

masukkan deskripsi gambar di sini

Apakah gambarnya jelas? Jika tidak, beri komentar dan saya akan menambahkan lebih banyak teks ...

elemolotiv
sumber
3

Alih-alih hanya membuat satu set pelatihan / validasi, Anda bisa membuat lebih banyak set tersebut.

Set pelatihan pertama dapat berupa, katakanlah, data 6 bulan (semester pertama 2015) dan set validasi akan menjadi tiga bulan berikutnya (Juli-Agustus 2015). Set pelatihan kedua akan menjadi kombinasi dari set pelatihan dan validasi pertama. Set validasi adalah tiga bulan ke depan (September-Oktober 2015). Dan seterusnya.

Ini adalah variasi dari validasi silang K-Fold di mana set pelatihan adalah kombinasi dari set latihan dan validasi sebelumnya.

aathiraks
sumber