Skip to content

Pipeline pengembangan machine learning menggunakan MLOps sebagai bagian dari proyek Dicoding.

Notifications You must be signed in to change notification settings

Rendika7/Submission-Pengembangan-Machine-Learning-Pipeline-MLOps-Dicoding

Repository files navigation

Submission 1: Binary Text Classification Model for Detecting Suicide Ideation on Reddit

Nama: Rendika Nurhartanto Suharto
Username dicoding: RENDIKA NURHARTANTO SUHARTO

Aspek Deskripsi
Dataset Suicide and Depression Detection
Masalah Masalah kesehatan mental seperti depresi dan ideasi bunuh diri menjadi perhatian global, terutama dengan meningkatnya keterpaparan media sosial yang dapat memengaruhi emosi dan perilaku individu. Menurut WHO Suicide Facts, lebih dari 700 ribu orang meninggal akibat bunuh diri setiap tahun, menjadikannya salah satu penyebab utama kematian di dunia. Tantangan utamanya adalah kurangnya deteksi dini dan tindakan preventif, karena banyak individu tidak mencari bantuan secara langsung. Data dari platform media sosial seperti Reddit, tempat pengguna sering membagikan pengalaman pribadi, menjadi sumber penting untuk memahami sinyal awal ideasi bunuh diri. Namun, skala data yang besar dan sifat teks yang tidak terstruktur memerlukan solusi canggih untuk mendeteksi pola secara efektif.
Solusi machine learning Untuk mendukung kesehatan mental melalui teknologi, dikembangkan model binary classification berbasis neural network untuk mendeteksi ideasi bunuh diri dari teks. Model ini memanfaatkan data dari subreddit seperti SuicideWatch dan Depression. Dengan memanfaatkan algoritma pembelajaran mesin, solusi ini bertujuan untuk mengidentifikasi individu dengan risiko tinggi secara akurat dan cepat. Pendekatan ini dilengkapi strategi peringatan dini berbasis data untuk mendukung layanan kesehatan mental dan mencegah kasus bunuh diri. Dengan teknologi ini, langkah pencegahan dapat dilakukan lebih dini untuk menyelamatkan nyawa dan meningkatkan kualitas hidup.
Metode Pengolahan Dataset Preparation: Dataset diolah menggunakan Pandas untuk membersihkan elemen tidak relevan (contoh: kolom "Unnamed: 0") dan melabeli data menjadi 1 untuk suicide dan 0 untuk non-suicide. Balancing Data: Sampling sebanyak 5.000 data dari masing-masing kelas untuk memastikan distribusi data yang seimbang. TFX Pipeline: Pipeline machine learning dibangun dengan komponen TFX untuk pemrosesan data. Data Splitting: Menggunakan CsvExampleGen untuk membagi data menjadi 90% untuk pelatihan training dan 10% untuk evaluasi evaluation. Data Validation: Menggunakan StatisticsGen untuk menghasilkan statistik deskriptif, SchemaGen untuk membuat struktur data, dan ExampleValidator untuk memvalidasi dataset terhadap anomali. Feature Transformation: Melakukan normalisasi teks (mengubah ke huruf kecil) dan konversi label menjadi tipe integer dengan komponen Transform untuk mendukung pembelajaran model.
Arsitektur Model Arsitektur model menggunakan Artificial Neural Network (ANN). Model terdiri dari Input Layer: Menerima teks mentah dalam bentuk string yang telah ditransformasi oleh TextVectorization. Embedding Layer: Dimensi embedding sebesar 16, memetakan teks ke representasi vektor. Hidden Layers: Dua hidden layer dengan 64 dan 32 neuron, masing-masing menggunakan fungsi aktivasi ReLU untuk menangkap pola kompleks dalam teks. Output Layer: Lapisan keluaran tunggal dengan fungsi aktivasi sigmoid untuk menghasilkan probabilitas binary classification (0 = non-suicide, 1 = suicide). Optimisasi: Optimizer Adam dengan learning rate 0.01. Loss Function: Binary crossentropy untuk menghitung perbedaan antara label sebenarnya dan prediksi model.
Metrik Evaluasi Binary Accuracy: Metrik utama untuk menilai kemampuan model dalam mengklasifikasikan teks secara benar antara suicide dan non-suicide. Area Under Curve (AUC): Mengukur kemampuan model untuk membedakan antara kelas positif dan negatif. Confusion Matrix: Metode evaluasi tambahan untuk menghitung True Positives (TP), True Negatives (TN), False Positives (FP), dan False Negatives (FN). Threshold-Based Binary Accuracy: Menggunakan ambang batas probabilitas (default: 0.5) untuk klasifikasi. Early Stopping: Menggunakan callback EarlyStopping berdasarkan validasi binary accuracy untuk mencegah overfitting.
Performa Model AUC: 0.954 menunjukkan kemampuan model yang sangat baik untuk membedakan antara kelas positif dan negatif. Binary Accuracy: 90% mencerminkan proporsi prediksi yang benar dari total data. Validation Accuracy (val_binary_accuracy): 89.84% menunjukkan akurasi model pada data validasi. Loss: 0.442 menandakan kesalahan prediksi model yang masih wajar. True Positives (TP): 404, menunjukkan kasus suicide yang terdeteksi dengan benar. True Negatives (TN): 473, menunjukkan kasus non-suicide yang terdeteksi dengan benar. False Positives (FP): 27, kasus yang salah diklasifikasikan sebagai suicide. False Negatives (FN): 70, kasus suicide yang gagal dideteksi. Model memiliki performa baik, namun False Negatives dapat dikurangi lebih lanjut untuk meningkatkan keandalan.
Kesimpulan Submission 1: Binary Text Classification Model for Detecting Suicide Ideation on Reddit menunjukkan bahwa pendekatan berbasis Artificial Neural Network (ANN) mampu memberikan hasil yang baik dalam mendeteksi ideasi bunuh diri dari teks. Dengan menggunakan dataset terkurasi dari subreddit seperti SuicideWatch dan Depression, pipeline machine learning yang dibangun berhasil menghasilkan model dengan performa yang sangat memuaskan. AUC sebesar 0.954 mencerminkan kemampuan model untuk membedakan antara kelas positif (suicide) dan negatif (non-suicide) dengan sangat baik. Binary Accuracy sebesar 90% dan Validation Accuracy sebesar 89.84% menunjukkan konsistensi prediksi model pada data evaluasi. Selain itu, Loss sebesar 0.442 masih dalam batas yang wajar, menandakan bahwa kesalahan prediksi model tidak terlalu signifikan. True Positives (TP) sebanyak 404 dan True Negatives (TN) sebanyak 473 menunjukkan kemampuan model mendeteksi data dengan benar, sementara False Positives (FP) sebanyak 27 dan False Negatives (FN) sebanyak 70 menjadi perhatian khusus, terutama FN yang berisiko dalam konteks deteksi suicide.

About

Pipeline pengembangan machine learning menggunakan MLOps sebagai bagian dari proyek Dicoding.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published