• Tidak ada hasil yang ditemukan

4.4. Analisis Sentimen dengan Model Machine Learning

4.4.1. Pemodelan Machine Learning Classifier

Pada tahap ini, penulis melakukan pembangunan model klasifikasi menggunakan Machine Learning Classifier. Pemodelan menggunakan modul Pipeline untuk menyederhanakan pemrosesan data dan pemodelan.

Pipeline tersebut terdiri dari tiga tahapan yaitu vektorisasi TF-IDF dengan spesifik Hyperparameter untuk mengkonversi teks menjadi bentuk numerik matriks, Latent Semantic Analysis (TruncatedSVD) dengan 100 komponen untuk dekomposisi dimensi matriks, dan terakhir Machine Learning Classifier dengan spesifik Hyperparamater. Setelah itu penulis melakukan pelatihan model dengan menggunakan data latih dan model yang sudah terlatih digunakan untuk memprediksi label sentimen pada data uji. Hasil dari klasifikasi sentimen yang dijadikan perbandingan dalam mode klasifikasi sentimen ini adalah akurasi, precision, recall, f1-score yang didapatkan dengan cara menggunakan modul sklearn.metrics serta kecepatan model dalam mengklasifikasi sejumlah data.

4.4.1.1. Model Decision Tree

Pada pemodelan dengan Decision Tree Classifier dari modul sklearn.tree, penulis menggunakan dua Hyperparameter yaitu criterion dengan nilai entropy dan max_features dengan nilai sqrt. Criterion adalah Hyperparameter dalam pengklasifikasi Decision Tree yang menentukan ukuran yang digunakan untuk mengevaluasi kualitas pemisahan pada setiap node di pohon. Criterion Entropy mengukur ketidakteraturan atau keacakan dalam sekumpulan titik data. Dalam konteks Decision Tree, ini digunakan untuk mengukur ketidakmurnian sebuah node, yaitu seberapa tercampurnya label kelas dalam node tersebut. Tujuannya adalah untuk mengurangi entropy, yang berarti membuat node semurni mungkin (berisi instansce dari satu kelas saja). Max_features adalah Hyperparameter lain dalam pengklasifikasi Decision Tree yang menentukan jumlah maksimum fitur yang dipertimbangkan saat mencari

pemisahan terbaik di setiap node. Nilai sqrt pada max_features ini mempertimbangkan akar kuadrat dari jumlah fitur. Tujuan membatasi jumlah fitur yang perlu dipertimbangkan adalah untuk mencegah overfitting. Jika data memiliki banyak fitur, terutama dalam kumpulan data berdimensi tinggi, mempertimbangkan semua fitur di setiap node dapat menyebabkan overfitting, yaitu model menangkap gangguan dalam data, bukan pola umum.

Membatasi fitur dapat membuat Decision Tree lebih kuat dan dapat diinterpretasikan.

Gambar 4. 4 Hasil pengujian model Decision Tree pada data uji

Setelah model telah terbentuk, dilakukan pelatihan dengan data latih dan pengujian dengan data uji pada model untuk mengetahui hasil klasifikasi sentimen. Dari Gambar 4.4 dapat diketahui bahwa hasil dari klasifikasi sentimen menggunakan model yang terlatih pada data uji memilik nilai akurasi sebesar 74.81%, rata-rata precision sebesar 70.45%, rata-rata recall sebesar 71.9%, rata-rata f1-score sebesar 71.06%.

Gambar 4. 5 Kecepatan performa model Decision Tree

Gambar 4. 6 Hasil klasifikasi model Decision Tree pada seluruh data

Gambar 4. 7 Confusion Matrix model Decision Tree

Setelah pengujian selesai, model klasifikasi sentimen disimpan dengan menggunakan modul pickle untuk

pemakaian model selanjutnya. Model yang sudah disimpan kemudian dapat digunakan untuk mengklasifikasi sentimen data baru namun karena keterbatasan penulis dalam mengambil data baru, penulis menggunakan seluruh data yang sebelumnya dibagi menjadi data latih dan data uji untuk diprediksi label sentimennya yaitu dengan jumlah data sebesar 5359 tweet.

Untuk kecepatan performa model dalam mengklasifikasikan sejumlah data seperti pada Gambar 4.5 dapat terlihat waktu yang dibutuhkan sekitar 2.9 detik, dan untuk hasil klasifikasi model dapat dilihat pada laporan seperti pada Gambar 4.6 dapat terlihat nilai akurasi mencapai 94.96%, nilai rata-rata metrik dari setiap label dapat terlihat untuk precision sebesar 94.14%, recall 94.46% dan f1-score sebesar 94.3%. Pada Gambar 4.7 terdapat visualisasi dari confusion matrix untuk mengetahui frekuensi seluruh tweet berdasarkan label sentimen sebenarnya dengan label sentimen hasil klasifikasi oleh model.

4.4.1.2. Model Logistic Regression

Pada pemodelan dengan Logistic Regression Classifier dari modul sklearn.linear_model, penulis menggunakan dua Hyperparameter yaitu penalty dengan nilai l2 dan solver dengan nilai saga. Penalty adalah Hyperparameter dalam pengklasifikasi Logistic Regression yang menentukan ukuran yang digunakan untuk mencegah overfitting, yang terjadi ketika model terlalu cocok dengan data pelatihan dan tidak dapat melakukan generalisasi dengan baik pada data yang tidak terlihat. Hal ini dilakukan dengan menambahkan penalti untuk nilai koefisien yang besar. Penalty l2 berfungsi untuk menambahkan nilai kuadrat dari koefisien sebagai suku penalti. Hal ini tidak

mendorong nilai koefisien yang sangat besar namun tidak memaksa koefisien menjadi tepat nol, sehingga memungkinkan semua fitur berkontribusi pada prediksi sampai batas tertentu. Solver adalah Hyperparameter lain dalam pengklasifikasi Logistic Regression yang digunakan untuk mengoptimalkan loss function model Logistic Regression selama pelatihan. Nilai saga pada solver ini dirancang untuk menangani kumpulan data besar secara efisien dan sangat berguna ketika menangani regularisasi L1 (Lasso) atau L2 (Ridge) dalam Logistic Regression.

Gambar 4. 8 Hasil pengujian model Logistic Regression pada data uji Setelah model telah terbentuk, dilakukan pelatihan dengan data latih dan pengujian dengan data uji pada model untuk mengetahui hasil klasifikasi sentimen. Dari Gambar 4.8 dapat diketahui bahwa hasil dari klasifikasi sentimen menggunakan model yang terlatih pada data uji memilik nilai akurasi sebesar 60.17%, rata-rata precision sebesar 65.56%, rata-rata recall sebesar 49.06%, rata-rata f1-score sebesar 52.75%.

Gambar 4. 9 Kecepatan performa model Logistic Regression

Gambar 4. 10 Hasil klasifikasi model Logistic Regression pada seluruh data

Gambar 4. 11 Confusion Matrix model Logistic Regression

Untuk kecepatan performa model dalam mengklasifikasikan sejumlah data seperti pada Gambar 4.9

dapat terlihat waktu yang dibutuhkan sekitar 1.9 detik, dan untuk hasil klasifikasi model dapat dilihat pada laporan seperti pada Gambar 4.10 dapat terlihat nilai akurasi mencapai 63.61%, nilai rata-rata metrik dari setiap label dapat terlihat untuk precision sebesar 68.09%, recall 50.82%

dan f1-score sebesar 54.73%. Pada Gambar 4.7 terdapat visualisasi dari confusion matrix untuk mengetahui frekuensi seluruh tweet berdasarkan label sentimen sebenarnya dengan label sentimen hasil klasifikasi oleh model.

4.4.1.3. Model Naïve Bayes

Pada pemodelan dengan Gaussian Naïve Bayes Classifier dari modul sklearn.naive_bayes, penulis menggunakan GaussianNB karena penulis sudah mencoba menggunakan MultinomialNB (Multinomial Naïve Bayes) dalam mengklasifikasi hasil dekomposisi matriks oleh TruncatedSVD (LSA) yang terdapat fitur yang bernilai negatif dan MultinomailNB memiliki keterbatasan dalam menangkap hubungan yang lebih kompleks antar fitur yang dalam hal ini fitur ekstraksi yang dilakukan LSA. Maka dari itu penulis menggunakan GaussianNB sebagai pengklasifikasi karena algoritma klasifikasi probabilistik yang berdasarkan teorema Bayes ini digunakan untuk tugas klasifikasi dan sangat cocok untuk kumpulan data dengan fitur kontinu yang dapat diasumsikan mengikuti distribusi Gaussian (normal) yang dalam hal ini tidak memiliki keterbatasan pada fitur negatif.

Gambar 4. 12 Hasil pengujian model Naive Bayes pada data uji

Setelah model telah terbentuk, dilakukan pelatihan dengan data latih dan pengujian dengan data uji pada model untuk mengetahui hasil klasifikasi sentimen. Dari Gambar 4.12 dapat diketahui bahwa hasil dari klasifikasi sentimen menggunakan model yang terlatih pada data uji memilik nilai akurasi sebesar 40.86%, rata-rata precision sebesar 47.6%, rata-rata recall sebesar 47.3%, rata-rata f1-score sebesar 38.86%.

Gambar 4. 13 Kecepatan performa model Naive Bayes

Gambar 4. 14 Hasil klasifikasi model Naive Bayes pada seluruh data

Gambar 4. 15 Confusion Matrix model Naive Bayes

Untuk kecepatan performa model dalam mengklasifikasikan sejumlah data seperti pada Gambar 4.13 dapat terlihat waktu yang dibutuhkan sekitar 1.8 detik, dan untuk hasil klasifikasi model dapat dilihat pada laporan seperti pada Gambar 4.14 dapat terlihat nilai akurasi mencapai 42.55%, nilai rata-rata metrik dari setiap label dapat terlihat untuk precision sebesar 48.53%, recall 48.29%

dan f1-score sebesar 40.52%. Pada Gambar 4.15 terdapat visualisasi dari confusion matrix untuk mengetahui frekuensi

seluruh tweet berdasarkan label sentimen sebenarnya dengan label sentimen hasil klasifikasi oleh model.

4.4.1.4. Model Stochastic Gradient Descent

Pada pemodelan dengan Stochastic Gradient Descent (SGD) Classifier dari modul sklearn.linear_model, penulis menggunakan tiga Hyperparameter yaitu alpha dengan nilai 0.0001, penalty dengan nilai l1 (L1) dan loss dengan nilai log_loss. Hyperparameter alpha dalam pengklasifikasi SGD digunakan sebagai istilah regularisasi.

Nilai alpha yang kecil akan menerapkan penalti regularisasi ringan pada koefisien model, sehingga membantu mencegah overfitting. Istilah regularisasi sering ditambahkan ke fungsi kerugian selama pelatihan. Nilai alpha yang lebih kecil (misalnya 0,0001) berarti langkah-langkah yang lebih kecil, yang dapat menghasilkan konvergensi yang lebih lambat namun lebih stabil. Ini membantu mencegah melampaui solusi optimal. Hyperparameter penalty menentukan jenis regularisasi yang akan diterapkan selama pelatihan.

Regularisasi L1 mendorong ketersebaran dalam model dengan menambahkan nilai absolut koefisien sebagai suku penalti ke loss function. Hal ini mendorong beberapa koefisien menjadi nol, sehingga secara efektif melakukan ekstraksi fitur. Regularisasi L1 berguna ketika terdapat kemungkinan hanya sebagian fitur yang relevan, dan untuk hal ini maka model dapat memilih fitur yang paling penting secara otomatis. Hyperparameter loss menentukan loss function yang digunakan untuk mengukur kesalahan model selama pelatihan. Logistic Regression menggunakan log loss (logistic loss) sebagai fungsi tujuannya.

Gambar 4. 16 pengujian model Stochastic Gradient Descent pada data uji Setelah model telah terbentuk, dilakukan pelatihan dengan data latih dan pengujian dengan data uji pada model untuk mengetahui hasil klasifikasi sentimen. Dari Gambar 4.16 dapat diketahui bahwa hasil dari klasifikasi sentimen menggunakan model yang terlatih pada data uji memilik nilai akurasi sebesar 60.82%, rata-rata precision sebesar 63.91%, rata-rata recall sebesar 52.08%, rata-rata f1-score sebesar 54.13%.

Gambar 4. 17 Kecepatan performa model Stochastic Gradient Descent

Gambar 4. 18 Hasil klasifikasi model SGD pada seluruh data

Gambar 4. 19 Confusion Matrix model Stochastic Gradient Descent

Untuk kecepatan performa model dalam mengklasifikasikan sejumlah data seperti pada Gambar 4.17 dapat terlihat waktu yang dibutuhkan sekitar 1.9 detik, dan untuk hasil klasifikasi model dapat dilihat pada laporan seperti pada Gambar 4.18 dapat terlihat nilai akurasi mencapai 63.56%, nilai rata-rata metrik dari setiap label dapat terlihat untuk precision sebesar 66.84%, recall 53.16%

dan f1-score sebesar 56.09%. Pada Gambar 4.19 terdapat visualisasi dari confusion matrix untuk mengetahui frekuensi

seluruh tweet berdasarkan label sentimen sebenarnya dengan label sentimen hasil klasifikasi oleh model.

Dokumen terkait