Algoritma Gaussian Naive Bayes With Python

Tiara Destiana
6 min readDec 4, 2023

--

Pada kesempatan kali ini, saya ingin membagikan penerapan algoritma gaussian naive bayes dengan bahasa pemrograman python untuk klasifikasi. Salah satu varian dari Naive Bayes adalah Gaussian Naive Bayes. Metode ini merupakan distribusi yang memiliki sifat kontinu dengan ciri-ciri dari rata-rata variansinya. Gaussian Naive Bayes bekerja pada tipe data angka (Cahyaningrum et al., 2022).

Dataset yang digunakan dalam bentuk kategorik dimana nantinya akan dilakukan perubahan tipe data terlebih dahulu. Selain itu, akan di tampilkan beberapa pengujian yang dapat diterapkan oleh pengguna.

Menggunakan Tuning Hyperparameter

Berikut beberapa langkah yang perlu dilakukan :

1.Seleksi Data

Sebelumnya terdapat beberapa parameter dalam data yang ada. Proses seleksi data ini menentukan parameter mana yang akan digunakan untuk proses selanjutnya.

Parameter serta label yang digunakan

Seperti gambar diatas, tentukan terlebih dahulu yang akan menjadi parameter dan labelnya. Pada contoh terdapat 3 parameter dengan 1 lebel untuk menentukan kekritisan suatu lahan. Parameternya adalah KELAS_VEG, KELAS_EROSI, KELAS_LERENG serta label nya yaitu KRITIS.

2. Pemrosesan Data

Berdasarkan data hasil seleksi dengan mengambil 3 parameter dan 1 label kekritisan selanjutnya akan dilakukan pembersihan dengan melakukan pengecekan missing value pada variabel yang digunakan untuk mempermudah tahapan klasifikasi selanjut. Berikut tampilan hasil cek missing value.

Missing Value

Berdasarkan hasil pengecekan menunjukkan bahwa data yang dimiliki tidak terdapat missing value di dalamnya.

3. Transformasi Data

Transformasi dilakukan karena model Naive Bayes yang digunakan kali ini adalah model GaussianNB. GaussianNB hanya dapat memproses data dalam bentuk angka (numeric) sedangkan values dari dataset berbentuk object. Oleh karena itu dilakukan proses konversi, tipe data pada dataset sebelum di konversikan kedalam bentuk angka.

Tampilan Isi Variabel yang sudah diubah menjadi angka

4. Data Mining

i. Menentukan variabel independen

Variabel independen yang digunakan adalah KELAS_VEG, KELAS_EROSI, KELAS_LERENG.

ii. Menentukan variabel dependen

Variabel dependen yang digunakan adalah KRITIS, karena ingin melihat lahan kritis di klasifikasikan sangat kritis, kritis, agak kritis, potensial kritis, atau tidak kritis.

iii. Melakukan pembagian data training dan testing

Tahapan selanjutnya adalah membagi dataset menjadi data training dan data testing dengan nilai random state 0. Skenario pembagian dataset sebagai berikut :

a. Skenario 1 data training (70) data testing (30)

b. Skenario 2 data training (80) data testing (20)

c. Skenario 3 data training (90) data testing (10)

iv. Modelling algoritme Gaussian Naive Bayes menggunakan python

a. Skenario 1 dengan perbandingan 70:30

Berikut adalah hasil modelling menggunakan algoritme Gaussian Naive Bayes dengan perbandingan data training dan data testing sebesar 70:30.

Tuning Hyperparameter Skenario 1

Tahap data mining skenario 1 dimulai dengan menerapkan teknik GridSearchCV, dimana penggunaan param_grid_nb adalah sebuah dictionary yang digunakan untuk mencari hyperparameter terbaik pada model Naive Bayes dengan algoritme GaussianNB. Jadi, param_grid_nb berfungsi sebagai himpunan nilai-nilai yang akan diuji untuk hyperparameter var_smoothing dalam proses pencarian hyperparameter menggunakan GridSearchCV. Setelah proses ini selesai, kita akan memiliki hyperparameter var_smoothing yang memberikan performa terbaik pada data validasi.

Pemodelan GausiaanNB Skenario 1

Selanjutnya melakukan tuning hyperparameter untuk model Naive Bayes dengan algoritme GaussianNB menggunakan teknik GridSearchCV. Hasil menunjukkan bahwa GridSearchCV sedang melakukan penyesuaian pada 100 kombinasi parameter yang berbeda menggunakan 10-fold cross-validation. Jumlah total penyesuaian yang dilakukan adalah 1000 (10 kali lipat x 100 kandidat).

Output ini memberitahu bahwa model Gaussian Naive Bayes dengan `var_smoothing` sebesar 0.43287612810830584 memberikan hasil terbaik setelah melakukan tuning hyperparameter dengan melibatkan 100 kombinasi parameter dan menggunakan 10-fold cross-validation. Nilai ini dipilih karena memberikan performa yang optimal untuk dataset yang digunakan.

Proses selanjutnya adalah memperlihatkan hasil prediksi dari kelas target menggunakan model yang telah dituning dengan GridSearchCV pada data pengujian. Nilai akurasi dari prediksi dengan perbandingan 70:30 adalah sebesar 0.71, tahapan ditampilkan pada gambar dibawah ini.

Hasil Prediksi dan Akurasi Seknario 1

b. Skenario 2 dengan perbandingan 80:20

Berikut adalah hasil modelling menggunakan algoritme Gaussian Naive Bayes dengan perbandingan data training dan data testing sebesar 80:20.

Tuning Hyperparameter Skenario 2
Pemodelan GaussianNB Skenario 2
Hasil Prediksi dan Akurasi Skenario 2

Gambar diatas memperlihatkan hasil prediksi dari kelas target menggunakan model yang telah dituning dengan GridSearchCV pada data pengujian. Nilai akurasi dari prediksi dengan perbandingan 80:20 adalah sebesar 0.70.

c. Skenario 3 dengan perbandingan 90:10

Berikut adalah hasil modelling menggunakan algoritme Gaussian Naive Bayes dengan perbandingan data training dan data testing sebesar 90:10.

Tuning Hyperparameter Skenario 3
Pemodelan GaussianNB Skenario 3
Hasil Prediksi dan Akurasi Skenario 3

Gambar diatas memperlihatkan hasil prediksi dari kelas target menggunakan model yang telah dituning dengan GridSearchCV pada data pengujian. Nilai akurasi dari prediksi dengan perbandingan 90:10 adalah sebesar 0.67.

5. Interpretasi/Evaluasi (Interpretation/Evaluation)

Confusion Matrix

Pengukuran kinerja yang dapat diterapkan pada metode klasifikasi salah satunya adalah Confusion matrix, menggambarkan performa dari sebuah model atau algoritme menggunakan tabel.

Berikut hasil confussion matrix dari ketiga skenario :

Skenario 1

Skenarion 2

Skenarion 3

Tabel di bawah merupakan hasil dari pemodelan Gaussian Naive Bayes yang dilakukan menggunakan skenario pembagian data dilakukan sebanyak 3 kali dengan skenario 70:30, 80:20, dan 90:10. Hasil dari pemodelan diukur dengan menggunakan parameter pada confusion matrix, yaitu nilai Accuracy, Precision, Recall, dan F1-Score.

Berdasarkan hasil evaluasi model diatas, maka dapat disimpulkan bahwa pemodelan dengan rasio pembagian data 70:30 merupakan pemodelan yang optimal dengan nilai Accuracy sebesar 71%, nilai Precision sebesar 0.56, nilai Recall sebesar 0.71 dan nilai F1-Score sebesar 0.61 jika dibandingkan dengan skenario 2 maupun skenario 3.

Setelah tahapan evaluasi telah dilakukan dan sudah mendapatkan skenario yang optimal, proses selanjutnya adalah presentasi pengetahuan dengan menampilkan visualisasi hasil dari pemodelan yang telah dilakukan. Visualisasi akan ditampilkan dalam bentuk diagram batang dengan tujuan agar dapat mudah dipahami. Berdasarkan gambar dibawah ini menunjukkan bahwa terdapat beberapa hasil klasifikasi yaitu kelas 2 dengan kriteria Potensial Kritis, kelas 3 dengan kriteria Agak Kritis. Dengan kelas terbanyak yaitu kelas 2.

Visualisasi hasil pemodelan

Informasi Tambahan :

  1. PENERAPAN ALGORITME GAUSSIAN NAIVE BAYES DALAM PENENTUAN PRIORITAS REHABILITASI DAERAH ALIRAN SUNGAI BERDASARKAN PARAMETER LAHAN KRITIS (https://ejournal.unma.ac.id/index.php/infotech/article/view/6501)
  2. Source Code (https://github.com/190237-TIARA/Klasifikasi-DAS.git)

--

--

Tiara Destiana
Tiara Destiana

Written by Tiara Destiana

0 Followers

Data Scientist

No responses yet