Deteksi pencilan konsumsi gas - Proyek jaringan saraf. Hasil buruk

10

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?

marcodena
sumber
2
Apa maksud Anda, hasil buruk? Jelaskan proses Anda, hasil Anda, dan bagaimana mereka berbeda dari apa yang Anda harapkan, alih-alih hanya menautkan ke repositori git. Kalau tidak, diskusi ini tidak akan berguna bagi siapa pun.
Air
Benar juga ini: D. Saya menambahkan deskripsi di halaman "Hasilnya memiliki 14,14 RMSE, sehingga tidak dapat memprediksi dengan baik konsumsi gas, berturut-turut saya tidak dapat menjalankan mekanisme pendeteksian pencilan yang baik. Saya melihat di beberapa makalah bahwa bahkan jika mereka memprediksi konsumsi harian atau per jam dalam daya listrik, mereka memiliki kesalahan seperti MSE = 0,01. "
marcodena
1
@marcodena Ini adalah situs QA, dan yang lain perlu tahu apa yang Anda coba selesaikan, sehingga mereka akan mengerti jawabannya, dan mudah-mudahan dapat menggunakannya dalam masalah mereka sendiri. Itulah yang dimaksudkan AirThomas, dan juga mengapa alangkah baiknya jika Anda dapat menggambarkan apa yang Anda lakukan dan apa yang menurut Anda salah. Jika tautan ke halaman git-hub Anda berubah, tautan di sini akan tidak valid, dan yang lain tidak akan dapat memahami apa masalahnya. Tolong, luangkan waktu sebentar untuk membuat pertanyaan Anda mandiri. Terima kasih.
Rubens
1
Ketika Anda menemukan bahwa masalah Anda membutuhkan waktu yang sangat lama untuk dijelaskan, saat itulah yang paling penting untuk meluangkan waktu untuk menjelaskan pertanyaan Anda kepada orang lain, secara eksplisit dan dengan banyak detail dan diskusi penelitian / upaya Anda. Seringkali selama proses itu Anda akan menemukan beberapa atau semua jawaban sendiri. Tidak hanya perasaan yang hebat, jika apa yang Anda temukan bermanfaat bagi orang lain, Anda masih dapat memposting pertanyaan yang menghabiskan begitu banyak waktu, dan jawaban yang Anda temukan .
Air
1
Hanya klarifikasi, ketika Anda menyebutkan bahwa "di beberapa makalah mereka memiliki kesalahan seperti MSE = 0,01", apakah Anda merujuk pada dataset yang sama yang Anda gunakan? Atau apakah ini merupakan dataset yang berbeda?
insys

Jawaban:

8

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.

sobach
sumber
3

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.

insys
sumber
Saya menambahkan beberapa grafik, setelah memperbaiki model BANYAK. Di github ada langkah-langkah baru. Bolehkah saya bertanya kepada Anda bagaimana saya bisa menerapkan regresi linier dalam masalah deret waktu? :(
marcodena
2

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:

  • sejumlah fitur
  • urutan polinomial
  • parameter regularisasi
  • jumlah lapisan dalam jaringan

Pengaturan terbaik dapat dipilih oleh kinerja pada set validasi silang.

tomaskazemekas
sumber
Saya menambahkan beberapa grafik dan Anda dapat memeriksa juga tentang parameter sekarang :)
marcodena
2

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 .

Bugra
sumber
Saya mencoba metode FFT Anda, tetapi saya benar-benar tidak mendapatkan cara mengatur ambang frekuensi dan amplitudo dengan data saya. Saya akan terus mencari, tetapi jika Anda dapat membantu saya ...
marcodena
Saya menambahkan sumber juga
marcodena