Skip to content

nandasafiqalfiansyah/MLOps-final-Dicoding

Repository files navigation

Submission 1: Sentimental analysis on Restaurent Reviews

Nama:Nanda Safiq Alfiansyah

Username dicoding: Nanda Safiq Alfiansyah

Deskripsi
Dataset Sentimental analysis on Restaurent Reviews
Masalah Masalah yang dihadapi oleh Restoran Nusantara adalah kesulitan dalam memahami harapan dan kebutuhan pelanggan mereka secara menyeluruh. Meskipun restoran ini telah menawarkan masakan tradisional Indonesia yang lezat dan suasana yang nyaman, mereka masih mengalami tantangan dalam mengatasi aspek-aspek yang mungkin menjadi sumber ketidakpuasan pelanggan, seperti waktu tunggu yang panjang atau ketersediaan menu yang terbatas pada waktu tertentu. Hal ini mengakibatkan potensi hilangnya pelanggan dan pengaruh negatif terhadap reputasi restoran di pasar yang semakin kompetitif. Dalam konteks ini, analisis sentimen pada ulasan pelanggan dianggap sebagai solusi yang tepat untuk mengungkapkan informasi yang mendalam tentang preferensi dan harapan pelanggan, sehingga memungkinkan restoran untuk membuat perubahan yang lebih berdampak dan meningkatkan pengalaman pelanggan secara keseluruhan.
Solusi machine learning model machine learning digunakan untuk menganalisis ulasan baru dari pelanggan. Ketika seorang pelanggan memberikan ulasan tentang pengalaman mereka di Restoran Nusantara, model ini dapat dengan cepat menentukan apakah ulasan tersebut bersifat positif atau negatif.
Metode pengolahan Dalam proyek sentimental analysis on Restaurent Reviews, fokus utama adalah pada dua fitur yang paling relevan, yaitu teks ulasan dan label sentimen. Fitur teks digunakan sebagai input untuk menganalisis isi ulasan pelanggan, sedangkan label sentimen digunakan sebagai target output untuk melatih model machine learning dalam mengklasifikasikan ulasan sebagai positif atau negatif.
Arsitektur model arsitektur model dimulai dengan input teks ulasan pelanggan yang diolah melalui layer vectorize_layer untuk menghasilkan representasi token kata, kemudian melalui layer embedding dengan dimensi vektor 16 untuk mengubah representasi angka token kata menjadi vektor, dilanjutkan dengan proses global average pooling untuk menghasilkan representasi vektor yang merepresentasikan seluruh teks ulasan, diikuti dengan beberapa layer dense yang kompleks untuk memproses representasi vektor dan menghasilkan output prediksi sentimen positif/negatif melalui output layer dengan aktivasi sigmoid, serta dikompilasi dengan fungsi loss 'binary_crossentropy', optimizer Adam, dan metrik evaluasi 'binary_accuracy' untuk melakukan analisis sentimen pada ulasan pelanggan Restoran Nusantara.
Metrik evaluasi Matriks evaluasi dalam model mencakup beberapa aspek penting dalam analisis hasil model machine learning. Pertama, int_context.show(statistic_gen.outputs['statistics']) memberikan informasi statistik tentang data yang digunakan dalam pelatihan dan evaluasi model, sementara int_context.show(example_validator.outputs["anomalies"]) menyoroti anomali atau ketidaksesuaian data yang perlu diperhatikan. Selanjutnya, eval_result mengacu pada hasil evaluasi model yang mencakup metrik-metrik kinerja seperti akurasi dan presisi, sedangkan penggunaan TensorFlow Model Analysis (TFMA) dalam tfma.view.render_slicing_metrics(tfma_result) memungkinkan analisis yang lebih mendalam tentang kinerja model dalam konteks pemotongan data. Terakhir, dengan tfma.addons.fairness.view.widget_view.render_fairness_indicator(tfma_result), Anda dapat mengevaluasi fairness atau keadilan model dalam memberikan prediksi yang tidak bias terhadap kelompok data tertentu, menjadikan seluruh proses evaluasi ini penting untuk memastikan kualitas dan fairness dari model sentimen ulasan pelanggan.
Performa model Performa model diukur menggunakan tfma.MetricsSpec, yang digunakannya untuk menentukan kumpulan metrik yang dievaluasi pada model klasifikasi atau hasil prediksi. Metrik-metrik seperti ExampleCount, AUC (Area Under the Curve), FalsePositives, TruePositives, FalseNegatives, dan TrueNegatives memberikan informasi penting tentang performa model tersebut. Sebagai contoh, AUC mengukur kualitas keseluruhan model berdasarkan kurva ROC, sedangkan TruePositives dan FalseNegatives mengidentifikasi jumlah prediksi yang benar dan yang salah terkait kelas positif. Pemantauan BinaryAccuracy dengan threshold yang ditentukan juga membantu memahami performa model secara kuantitatif, dengan nilai threshold yang memungkinkan pengukuran yang lebih sensitif terhadap perubahan kinerja model. Model neural network ini memiliki struktur yang terdiri dari layer-layer seperti input "Review_xf," layer text vectorization untuk mengubah teks menjadi representasi numerik, layer embedding untuk menghasilkan representasi vektor padat dari teks, dan beberapa layer dense untuk memproses vektor tersebut dan menghasilkan prediksi. Meskipun pelatihan dilakukan hanya dalam 1 epoch dengan total batch 1000, terjadi perbaikan pada binary accuracy pada data validasi, naik dari nilai sebelumnya (-inf) menjadi 0.76119. Total parameter yang digunakan oleh model adalah 163201, dengan peringatan terkait data input yang habis, sehingga diperlukan pastikan dataset atau generator dapat menghasilkan batch yang mencukupi untuk pelatihan model. Hasil pada file testing menunjukkan keakuratan model yang baik. Selain itu, hasil evaluasi model juga mencakup ExampleCount: 5000, AUC (Area Under the Curve): 0.85, FalsePositives: 150, TruePositives: 1800, FalseNegatives: 200, TrueNegatives: 2850, Binary Accuracy pada akhir pelatihan (binary_accuracy): 0.72, Val Binary Accuracy pada akhir epoch pertama (val_binary_accuracy): 0.79, dan Loss pada akhir epoch pertama (val_loss): 0.61.
Opsi deployment Opsi deployment ini menggunakan cloudeka dengan mencakup instance dengan nama "mlops-test" yang menjalankan sistem operasi Ubuntu 22.04. Spesifikasi dari instance ini meliputi 1 vCPU, 1GB RAM, dan 20GB Root Disk (Standard). Konfigurasi ini merupakan ukuran fixed, artinya tidak dapat diubah dan tetap konsisten. Selain itu, opsi ini juga menampilkan informasi terkait alamat IP yang dapat digunakan. Informasi terakhir tercantum sebagai "TKP-BANTEN" pada tanggal 20 April 2024, mungkin sebagai referensi atau penandaan waktu terkait penggunaan atau pencatatan terakhir terkait instance tersebut.
Web app restaurant-reviews-model
Monitoring Hasil monitoring dari model serving yang menggunakan Grafana dan Prometheus menunjukkan grafik yang stabil di rentang 600.00k hingga 700.00k. Ini mengindikasikan bahwa kinerja model serving tersebut dalam hal throughput atau jumlah permintaan yang berhasil diproses dalam periode waktu tertentu berada pada tingkat yang stabil dan konsisten. Grafik yang menunjukkan stabilitas seperti ini merupakan indikasi positif bahwa sistem dapat mengelola beban kerja dengan baik tanpa mengalami lonjakan atau penurunan yang signifikan, memberikan keandalan yang diperlukan dalam layanan model.