Setelah proyek teks, kita berpindah ke data yang urutannya menjadi sumber informasi utama: deret waktu. Proyek ini membangun sistem prediksi satu langkah ke depan dari data penjualan mingguan sintetis sepanjang 400 titik yang memuat tren naik, pola musiman siklus 20 minggu, dan derau. Model yang dipilih adalah LSTM kecil dari section Sequence Modeling , tetapi porsi terbesar pembelajaran justru berada di disiplin di sekelilingnya: windowing yang benar, pembagian data yang menghormati garis waktu, normalisasi tanpa kebocoran, dan evaluasi yang selalu dibandingkan dengan baseline sederhana.

Aspek paling khas proyek ini adalah larangan mengacak data. Untuk klasifikasi, shuffle justru dianjurkan; untuk deret waktu, shuffle menyembunyikan kenyataan bahwa model harus memprediksi masa depan dari masa lalu. Kita akan membuktikan efek buruknya lewat eksperimen nyata: pembagian yang diacak menghasilkan loss validasi yang terlihat lebih baik daripada kenyataannya.

Struktur Proyek #

DirektoriIsiPeran
data/generate_data.py, deret.csv, README.mdderet sintetis 400 titik
src/dataset.py, model.py, latih.py, evaluasi.pykode program utama
tests/test_dataset.py, test_model.pytest assert untuk tiap modul
laporan/LAPORAN.mdtemplate laporan hasil praktik

Tahapan Pengerjaan #

Proyek dikerjakan dalam empat bagian berurutan:

  1. Bagian 1 — Memahami Data Deret Waktu : bangkitkan deret dan bedah tiga komponennya.
  2. Bagian 2 — Membangun Model Sekuens : ubah deret menjadi dataset supervised dan rakit LSTM.
  3. Bagian 3 — Training dan Validasi : latih dengan pembagian temporal dan early stopping, plus eksperimen kebocoran data.
  4. Bagian 4 — Evaluasi Prediksi : ukur MAE dan RMSE model melawan baseline naive.

Kerjakan berurutan karena setiap modul dibangun di atas modul sebelumnya: latih.py mengimpor dataset.py dan model.py, sementara evaluasi.py memakai model hasil latih.py.