Skip to content

nandaarya/std-depression-pred-pipeline

Repository files navigation

Submission Akhir: Student Depression Prediction Model

Nama: Nanda Arya Putra

Username dicoding: Nanda Arya Putra

Deskripsi
Dataset Student Deperession Dataset
Masalah Tingginya tingkat tekanan akademik, tuntutan sosial, dan faktor kehidupan lainnya telah menyebabkan meningkatnya kasus depresi di kalangan siswa, namun identifikasi dini terhadap siswa yang berisiko masih menjadi tantangan bagi institusi pendidikan. Penelitian ini berfokus pada pemanfaatan teknik pembelajaran mesin untuk memprediksi kemungkinan seorang siswa mengalami depresi berdasarkan faktor-faktor demografis, akademik, dan gaya hidup yang tersedia dalam dataset. Dengan mengembangkan model prediktif yang akurat, penelitian ini bertujuan untuk membantu institusi pendidikan dalam mengidentifikasi siswa yang berisiko serta merancang intervensi yang lebih efektif guna meningkatkan kesejahteraan mental siswa.
Solusi machine learning Solusi yang diusulkan dalam penelitian ini adalah membangun model machine learning untuk memprediksi kemungkinan seorang siswa mengalami depresi berdasarkan berbagai faktor seperti tekanan akademik, tingkat kepuasan belajar, durasi tidur, kebiasaan makan, tekanan keuangan, serta riwayat keluarga terkait kesehatan mental. Dengan memanfaatkan machine learning, sistem dapat secara otomatis menganalisis data siswa dan memberikan prediksi dengan tingkat akurasi yang tinggi, sehingga institusi pendidikan dapat mengambil langkah pencegahan yang lebih tepat sasaran untuk membantu siswa yang berisiko.
Metode pengolahan Metode pengolahan data yang digunakan dalam penelitian ini mencakup beberapa teknik utama, yaitu pembersihan data, normalisasi fitur numerik, dan encoding fitur kategorikal. Data yang tidak relevan atau tidak digunakan dalam analisis akan dihapus untuk meningkatkan efisiensi pemrosesan. Selain itu, data dengan nilai yang hilang atau tidak valid pada fitur "Financial Stress" akan difilter untuk memastikan kualitas input. Fitur numerik seperti "Age", "CGPA", dan "Study Satisfaction" dinormalisasi menggunakan Z-score normalization untuk memastikan distribusi data yang seimbang. Sementara itu, fitur kategorikal seperti "Gender" dan "Dietary Habits" dikonversi menjadi bentuk numerik menggunakan teknik One-Hot Encoding dengan bantuan vocabulary yang dihitung dari data. Pendekatan ini memastikan bahwa semua fitur siap digunakan dalam model machine learning untuk memprediksi kemungkinan depresi pada siswa.
Arsitektur model Arsitektur model yang digunakan dalam penelitian ini merupakan deep learning model berbasis jaringan saraf tiruan (Neural Network) yang terdiri dari beberapa lapisan untuk mengolah data numerik dan kategorikal secara bersamaan. Model ini menerima input berupa fitur numerik dan kategorikal yang telah ditransformasikan. Fitur numerik diproses melalui lapisan dense dengan jumlah unit yang dapat ditentukan secara dinamis melalui hyperparameter tuning, menggunakan aktivasi ReLU. Fitur kategorikal diolah melalui teknik One-Hot Encoding, kemudian digabungkan dengan fitur numerik dalam satu lapisan concatenation. Model ini memiliki dua lapisan dense utama, masing-masing dengan jumlah unit yang dapat disesuaikan, serta menggunakan dropout untuk mencegah overfitting. Lapisan output menggunakan aktivasi sigmoid untuk menghasilkan prediksi biner terhadap status depresi siswa. Optimasi model dilakukan menggunakan Adam optimizer dengan berbagai pilihan learning rate yang ditentukan dalam proses tuning menggunakan Bayesian Optimization untuk menemukan konfigurasi hiperparameter terbaik.
Metrik evaluasi Metrik evaluasi yang digunakan dalam model ini mencakup beberapa indikator penting untuk menilai performa klasifikasi biner dalam mendeteksi depresi pada siswa. Example Count digunakan untuk menghitung jumlah sampel yang dipakai dalam evaluasi guna memastikan jumlah data yang cukup dalam setiap iterasi. AUC (Area Under Curve) mengukur kemampuan model dalam membedakan antara kelas positif dan negatif berdasarkan kurva ROC(Receiver Operating Characteristic), di mana semakin tinggi nilai AUC, semakin baik performa model. False Positives (FP) dan False Negatives (FN) masing-masing menghitung jumlah prediksi salah untuk kelas positif dan negatif, yang penting untuk memahami kesalahan klasifikasi model, terutama dalam kasus deteksi depresi di mana kesalahan ini bisa berdampak signifikan. True Positives (TP) dan True Negatives (TN) mengukur keberhasilan model dalam mengidentifikasi kasus depresi dengan benar serta menghindari kesalahan klasifikasi negatif. Terakhir, Binary Accuracy digunakan sebagai metrik utama untuk menghitung persentase prediksi yang benar terhadap total sampel, dengan batas minimum akurasi 0.5 serta threshold perubahan yang bertujuan menjaga performa model agar tidak mengalami degradasi.
Performa model Model menunjukkan performa yang cukup baik dengan binary accuracy 87,09% pada data latih dan 83,54% pada data validasi setelah 10 epoch pelatihan. Namun, terdapat gap pada loss (0.2869 vs. 0.5029), yang mengindikasikan potensi overfitting, di mana model belajar terlalu baik pada data latih tetapi kurang mampu menggeneralisasi ke data validasi. Meskipun demikian, akurasi validasi yang masih cukup tinggi menunjukkan bahwa model tetap memiliki kemampuan prediksi yang layak, meskipun mungkin perlu diterapkan regularisasi atau teknik lain untuk meningkatkan generalisasi.
Opsi deployment Opsi deployment yang digunakan dalam proyek ini adalah melalui Railway, dengan model yang dideploy pada layanan nandaaryaputra-deployment. Railway menyediakan lingkungan cloud yang mempermudah deployment model dengan integrasi yang efisien terhadap berbagai kebutuhan backend. Selain itu, untuk monitoring performa model, Prometheus juga dideploy melalui Railway dengan nama nandaaryaputra-monitoring. Prometheus digunakan untuk mengumpulkan dan menganalisis metrik dari TensorFlow Serving, sehingga memungkinkan pemantauan model secara real-time.
Web app student-depression-prediction-model
Monitoring Hasil monitoring dari model serving yang menggunakan Grafana dan Prometheus menunjukkan bahwa model berhasil dideploy dan dapat digunakan dengan baik, terlihat dari metrik request_count yang naik ketika model digunakan. Selain itu, masih banyak metrik-metrik lain yang dapat digunakan untuk monitoring model secara real-time.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published