final-project-mlops-dicoding

Submission: Fake News Classification

Nama: William Hilmy Susatyo

Username Dicoding: williamhilmysusatyo

Deskripsi
Dataset Dataset yang digunakan dalam proyek ini dapat diakses pada tautan berikut ini
Masalah Penyakit diabetes, juga dikenal sebagai penyakit gula, merupakan suatu kondisi kronis yang memerlukan perhatian khusus. Salah satu ciri utama diabetes adalah peningkatan kadar glukosa dalam darah melebihi batas normal. Kondisi ini terjadi ketika tubuh tidak lagi efektif dalam menyerap glukosa ke dalam sel dan menggunakannya sebagai sumber energi. Dampaknya, terjadi penimbunan glukosa ekstra dalam aliran darah. Tingkat kematian yang terkait dengan diabetes cukup tinggi. Pada tahun 2023 saja, tercatat lebih dari 500 juta orang menderita diabetes di seluruh dunia.
Solusi machine learning Pada umumnya, dalam proses medis, pasien sering kali harus menjalani pemeriksaan untuk mengukur tingkat gula dalam tubuh mereka guna mengetahui apakah mereka menderita diabetes. Meskipun demikian, terkadang hasil pemeriksaan gula darah saja tidaklah cukup bagi dokter untuk membuat diagnosis yang akurat mengenai kondisi diabetes pada seorang pasien. Oleh karena itu, diperlukan pendekatan yang lebih canggih dan terperinci untuk membantu dokter dalam proses diagnosis. Dalam konteks ini, penggunaan sistem klasifikasi diabetes menggunakan teknologi machine learning menjadi sangat relevan dan penting. Machine learning merupakan cabang dari kecerdasan buatan yang memungkinkan komputer untuk belajar dari data tanpa perlu secara eksplisit diprogram. Dengan memanfaatkan teknik-teknik ini, diharapkan dokter dapat memperoleh wawasan yang lebih mendalam mengenai diabetes pada pasien mereka. Melalui penggunaan sistem klasifikasi diabetes, dokter dapat menggunakan berbagai fitur dan variabel yang relevan, seperti tingkat gula darah, riwayat kesehatan, pola makan, dan faktor-faktor lainnya, untuk membangun model yang dapat memprediksi kemungkinan adanya diabetes pada seorang pasien. Model ini dapat menghasilkan informasi yang berharga bagi dokter dalam proses pengambilan keputusan, serta menjadi dasar untuk pemeriksaan lanjutan dan perawatan yang lebih terarah di masa mendatang.
Metode pengolahan Dalam konteks situasi yang diberikan, terdapat beberapa tahapan dan komponen yang perlu diperhatikan untuk mengoptimalkan proses analisis data. Pertama-tama, terdapat sembilan fitur yang tersedia, yang mana delapan dari fitur-fitur tersebut akan berperan sebagai fitur-fitur yang akan digunakan dalam proses klasifikasi, sedangkan satu fitur akan bertindak sebagai kelas atau label yang akan digunakan untuk membedakan atau mengelompokkan data. Dari sembilan fitur tersebut, dua di antaranya bersifat kategoris, yang mana artinya fitur-fitur tersebut berisi informasi dalam bentuk kategori atau kelas, sementara enam fitur lainnya bersifat numerik, yang berarti informasi dalam fitur-fitur tersebut terdapat dalam bentuk angka atau nilai numerik. Selanjutnya, data yang telah tersedia akan dibagi menjadi dua bagian dengan perbandingan 80:20, yang berarti 80% dari data akan digunakan sebagai data pelatihan untuk melatih model klasifikasi, sementara 20% sisanya akan digunakan sebagai data evaluasi untuk menguji performa dari model yang telah dilatih. Proses transformasi data akan menjadi tahapan penting selanjutnya. Proses ini akan melibatkan beberapa langkah, termasuk penamaan ulang fitur-fitur yang telah diubah untuk memastikan konsistensi dan kejelasan dalam pemrosesan data. Selain itu, one-hot encoding akan dilakukan untuk data kelas atau label. One-hot encoding merupakan teknik yang umum digunakan untuk mengubah data kategori menjadi representasi biner yang memungkinkan algoritma klasifikasi untuk lebih mudah memproses informasi kategori tersebut. Dengan demikian, pemahaman yang mendalam terhadap karakteristik data dan proses transformasi yang diperlukan akan menjadi kunci utama dalam mempersiapkan data untuk proses klasifikasi yang akurat dan efektif. Dengan langkah-langkah yang sistematis dan tepat, diharapkan hasil dari analisis data akan memberikan wawasan yang berharga dan mendukung pengambilan keputusan yang lebih baik.
Arsitektur model Dalam merancang arsitektur modelnya, setiap lapisan (layer) menggunakan tiga jenis lapisan Dense dengan jumlah neuron berturut-turut 256, 64, dan 16. Fungsi aktivasi yang digunakan pada setiap lapisan adalah relu. Lapisan terakhir menggunakan lapisan Dense dengan satu neuron karena model ini akan digunakan untuk mengklasifikasikan dua kelas, yaitu diabetes dan tidak diabetes. Fungsi aktivasi yang digunakan pada lapisan terakhir adalah sigmoid, yang sesuai untuk tugas klasifikasi biner. Sementara itu, untuk mengkompilasi model, digunakan optimizers Adam dengan laju pembelajaran (learning rate) sebesar 0.001. Fungsi kerugian (loss function) yang digunakan adalah binary_crossentropy, yang cocok untuk masalah klasifikasi biner. Metrics yang digunakan untuk evaluasi model adalah BinaryAccuracy, yang memberikan informasi tentang seberapa baik model dapat mengklasifikasikan sampel-sampel data pada dua kelas yang tersedia.
Metrik evaluasi Metrik yang digunakan untuk menilai kinerja model machine learning adalah beragam, dan salah satu di antaranya adalah AUC (Area Under the ROC Curve), yang memberikan gambaran tentang seberapa baik model dapat membedakan antara kelas positif dan negatif. Selain itu, terdapat metrik seperti Precision, yang mengukur proporsi prediksi positif yang benar dari semua prediksi positif, dan Recall, yang mengukur proporsi dari semua kasus positif yang telah diidentifikasi dengan benar oleh model. Selain metrik-metrik tersebut, ada juga metrik seperti TFMA Example Count, yang memberikan gambaran tentang jumlah contoh yang diukur oleh TensorFlow Model Analysis (TFMA), serta True Positive (TP), True Negatives (TN), False Positive (FP), dan False Negatives (FN), yang masing-masing menunjukkan berapa banyak prediksi model yang sesuai atau tidak sesuai dengan kenyataan. Terakhir, binary accuracy juga merupakan salah satu metrik yang digunakan untuk mengevaluasi seberapa akurat model dalam memprediksi kelas target biner.
Performa model Dalam mengevaluasi performa suatu model, dua metrik yang umumnya dipertimbangkan adalah akurasi (accuracy) dan loss. Akurasi mengukur seberapa baik model dapat memprediksi kelas atau label yang benar, sedangkan loss mengindikasikan seberapa baik model dalam menghitung kesalahan prediksi pada data latihan (training) dan data validasi. Dari hasil evaluasi yang disebutkan, model tersebut menunjukkan kinerja yang sangat baik. Dengan akurasi sebesar 0.9715 pada proses training dan juga 0.9717 pada proses validasi, model ini mampu memprediksi kelas dengan tingkat keakuratan yang tinggi. Akurasi yang tinggi pada proses training dan validasi menunjukkan bahwa model mampu menggeneralisasi pola-pola yang ditemukan pada data latih ke data yang belum pernah dilihat sebelumnya. Selain akurasi, nilai loss juga memberikan gambaran tentang kinerja model. Loss yang rendah pada proses training dan validasi, yaitu 0.0822 dan 0.0828 secara berturut-turut, menunjukkan bahwa model berhasil mengurangi kesalahan prediksi dengan efisien selama proses pelatihan dan evaluasi. Semakin rendah nilai loss, semakin baik pula kinerja model dalam menggeneralisasi dan membuat prediksi yang akurat. Dari hasil tersebut, dapat disimpulkan bahwa model ini memiliki kinerja yang baik untuk tugas klasifikasi yang diberikan.
Opsi Deployment Model yang telah dikembangkan berhasil mencapai kinerja yang sangat memuaskan dalam menghasilkan prediksi untuk teks berita yang diinputkan. Melalui serangkaian pelatihan yang telah dilakukan, model berhasil mencapai tingkat keakuratan biner (binary accuracy) dan tingkat keakuratan validasi (val_binary_accuracy) sekitar 98%. Tingkat keakuratan yang tinggi tersebut menunjukkan kemampuan model untuk dengan tepat mengklasifikasikan berita, memberikan kepercayaan bahwa model dapat memberikan prediksi yang dapat diandalkan dalam konteks ini.
Web App Platform yang digunakan untuk proses deployment pada sistem ini menggunakan Railway yang dapat diakses pada tautan berikut ini
Monitoring Pemantauan dalam sistem ini menggunakan Prometheus. Di sini, pemantauan dilakukan untuk memperlihatkan permintaan yang masuk ke sistem, yang menampilkan status dari setiap permintaan yang dilakukan. Ada tiga status yang ditampilkan dalam sistem ini: jika proses permintaan pada sistem klasifikasi tidak ditemukan, memiliki argumen yang tidak valid, atau proses klasifikasi berhasil, yang ditandai dengan "ok".
Kesimpulan Model yang telah berhasil dikembangkan telah menjalani serangkaian pengujian untuk memastikan kinerjanya dan kemampuannya dalam melakukan klasifikasi. Model ini telah diuji coba untuk menentukan apakah seseorang memiliki potensi untuk menderita penyakit diabetes atau tidak, dengan mempertimbangkan berbagai ciri khas yang diberikan sebagai masukan. Tes tersebut melibatkan proses evaluasi yang teliti terhadap keakuratan prediksi model terhadap data uji yang relevan. Dengan demikian, kesesuaian model dalam mengidentifikasi potensi risiko diabetes telah diperiksa secara komprehensif melalui serangkaian pengujian yang ketat.