Saya mencoba mendeteksi pencilan dalam konsumsi gas energi dari beberapa bangunan Belanda, membangun model jaringan saraf. Saya memiliki hasil yang sangat buruk, tetapi saya tidak dapat menemukan alasannya.
Saya bukan ahli sehingga saya ingin bertanya kepada Anda apa yang bisa saya tingkatkan dan apa yang saya lakukan salah. Ini adalah deskripsi lengkap: https://github.com/denadai2/Gas-consumption-outliers .
Jaringan saraf adalah Jaringan FeedFoward dengan Back Propagation. Seperti dijelaskan di sini, saya memisahkan dataset dalam dataset "kecil" dengan 41'000 baris, 9 fitur dan saya mencoba menambahkan lebih banyak fitur.
Saya melatih jaringan tetapi hasilnya memiliki 14,14 RMSE, sehingga tidak dapat memprediksi dengan baik konsumsi gas, secara berurutan saya tidak dapat menjalankan mekanisme pendeteksian pencilan yang baik. Saya melihat bahwa di beberapa makalah yang bahkan jika mereka memprediksi konsumsi daya listrik harian atau jam, mereka memiliki kesalahan seperti MSE = 0,01.
Apa yang bisa saya tingkatkan? Apa yang saya lakukan salah? Bisakah Anda melihat deskripsi saya?
sumber
Jawaban:
Hanya gagasan - data Anda sangat musiman: siklus harian dan mingguan cukup jelas. Jadi pertama-tama, cobalah untuk mendekomposisi variabel Anda (konsumsi gas dan listrik, suhu, dan radiasi matahari). Ini adalah tutorial yang bagus tentang dekomposisi deret waktu untuk R.
Setelah mendapatkan komponen tren dan musiman, bagian yang paling menarik dimulai. Itu hanya asumsi, tapi saya pikir, variabel konsumsi gas dan listrik akan cukup dapat diprediksi melalui analisis deret waktu (misalnya, model ARIMA ). Dari sudut pandang saya, bagian yang paling keluar di sini adalah mencoba memprediksi residu setelah penguraian, menggunakan data yang tersedia (anomali suhu, radiasi matahari, kecepatan angin). Saya kira, residu ini adalah outlier, yang Anda cari. Semoga bermanfaat.
sumber
Dalam buku catatan pelatihan Anda, Anda menyajikan hasil untuk pelatihan dengan 20 zaman. Sudahkah Anda mencoba memvariasikan parameter itu, untuk melihat apakah itu memengaruhi kinerja Anda? Ini adalah parameter penting untuk back-propagation.
Untuk memperkirakan parameter model Anda, seperti yang ditunjukkan pengguna tomaskazemekas, merencanakan Kurva Belajar adalah pendekatan yang sangat baik. Selain itu, Anda juga bisa membuat plot menggunakan parameter model (mis. Zaman pelatihan atau ukuran lapisan tersembunyi) vs. Kesalahan Pelatihan dan Validasi. Ini akan memungkinkan Anda untuk memahami tradeoff bias / varians, dan membantu Anda memilih nilai yang baik untuk parameter Anda. Beberapa info dapat ditemukan di sini . Tentu saja, itu adalah ide yang baik untuk menyimpan persentase kecil dari data Anda untuk set uji (ketiga).
Sebagai catatan tambahan, tampaknya peningkatan jumlah neuron dalam model Anda tidak menunjukkan peningkatan yang signifikan untuk RMSE Anda. Ini menunjukkan bahwa Anda juga bisa mencoba dengan model yang lebih sederhana, yaitu dengan lebih sedikit neuron dan melihat bagaimana model Anda berperilaku.
Bahkan, saya akan menyarankan (jika Anda belum melakukannya) mencoba model sederhana dengan sedikit atau tanpa parameter pertama misalnya Regresi Linier, dan membandingkan hasil Anda dengan literatur, seperti halnya pemeriksaan kewarasan.
sumber
Masalah utama di sini adalah bahwa bahkan sebelum mencoba menerapkan algoritma pendeteksian anomali, Anda tidak mendapatkan prediksi yang cukup baik dari konsumsi gas menggunakan jaringan saraf.
Jika tujuan utama di sini adalah untuk mencapai tahap ketika algoritma pendeteksian anomali dapat digunakan dan Anda menyatakan bahwa Anda memiliki akses ke contoh penerapan regresi linier yang berhasil untuk masalah ini, pendekatan ini bisa lebih produktif. Salah satu prinsip aplikasi pembelajaran mesin yang berhasil adalah bahwa beberapa algoritma berbeda dapat dicoba sebelum pemilihan akhir berdasarkan hasil.
Jika Anda memilih untuk menyetel kinerja jaringan saraf Anda, kurva pembelajaran yang memplot efek perubahan dalam hiperparameter yang berbeda pada tingkat kesalahan dapat digunakan. Hyperparameter yang dapat dimodifikasi adalah:
Pengaturan terbaik dapat dipilih oleh kinerja pada set validasi silang.
sumber
Di buku catatan Anda, saya tidak melihat model jaringan saraf Anda, dapatkah Anda menunjukkan perpustakaan mana yang digunakan, berapa banyak lapisan yang Anda miliki dan jenis jaringan saraf apa yang Anda gunakan?
Di notebook Anda, tampaknya Anda menggunakan dataset berisik dan outlier untuk melatih jaringan saraf, saya pikir Anda harus melatih jaringan saraf pada dataset bahwa Anda tidak memiliki outlier sehingga Anda bisa melihat jarak pengamatan dari prediksi jaringan saraf untuk memberi label pengamatan baik outlier atau tidak.
Aku menulis beberapa dari hal-hal deteksi outlier dalam sinyal time-series, data Anda sangat musiman sebagai sobach disebutkan dan Anda bisa menggunakan FFT (link pertama di atas) untuk mendapatkan tren secara keseluruhan dalam sinyal. Setelah Anda mendapatkan komponen frekuensi dalam konsumsi gas, Anda bisa melihat komponen frekuensi tinggi untuk mendapatkan outlier.
Juga jika Anda ingin bersikeras menggunakan jaringan saraf untuk data musiman, Anda mungkin ingin memeriksa jaringan saraf berulang karena mereka dapat menggabungkan pengamatan masa lalu lebih baik daripada jaringan saraf vanili, dan seharusnya dapat memberikan hasil yang lebih baik untuk data yang Anda miliki .
sumber