Naive Bayes adalah sebuah algoritma prediksi berbasis
probabilistik sederhana yang berdasar pada penerapan Teorema Bayes dengan
asumsi independensi fitur. Algoritma ini digunakan untuk melakukan klasifikasi
dan prediksi berdasarkan probabilitas keanggotaan suatu kelas. Naive Bayes
tidak mempelajari fitur mana yang paling penting untuk membedakan antar kelas,
melainkan menggunakan prinsip probabilitas untuk melakukan klasifikasi.
Algoritma ini terbukti memiliki akurasi dan kecepatan yang tinggi saats
diaplikasikan ke dalam database dengan data yang besar.
Apa itu Naïve Bayes
Classifier?
Naive Bayes Classifier (NBC) adalah sebuah algoritma klasifikasi yang berbasis pada Teorema Bayes dan digunakan untuk memprediksi kelas suatu objek berdasarkan atribut-atribut yang terkait. NBC mengasumsikan bahwa atribut-atribut tersebut independen dan menggunakan perhitungan probabilitas untuk mengklasifikasikan objek ke dalam kelas yang paling sesuai.
Mengapa menggunakan
Naïve Bayes Classifier?
Berikut beberapa alasan mengapa menggunakan Navie Bayes Classifier (NBC):
1.Sederhana dan mudah diterapkan: NBC memiliki struktur yang sederhana dan mudah dipahami, sehingga mudah untuk diimplementasikan dan diintegrasikan dengan sistem lain.
2.Tidak membutuhkan banyak data pelatihan: NBC dapat bekerja dengan jumlah data pelatihan yang relatif kecil, sehingga sangat berguna ketika data yang tersedia terbatas
3.Menangani data kontinu dan diskrit: NBC dapat menghandle data yang berupa bilangan bulat, decimal, dan kategori, sehingga sangat berguna dalam berbagai aplikasi.
4.Sangat skalabel: NBC dapat digunakan untuk jumlah prediktor dan titik data yang besar, sehingga sangat berguna dalam aplikasi yang memerlukan skala besar.
5.Cepat dan dapat digunakan untuk membuat prediksi real-time: NBC dapat bekerja dengan cepat, sehingga sangat berguna dalam aplikasi yang memerlukan prediksi real-time.
6.Tidak sensitif terhadap fitur yang tidak relevan: NBC tidak terpengaruh oleh fitur yang tidak relevan, sehingga dapat meningkatkan akurasi prediksi
Penerapan Naïve Bayes pada Dataset Jeruk
Langkah pertama adalah mempersiapkan data.
Dataset Jeruk bisa kita download di https://www.kaggle.com/datasets/shruthiiiee/orange-quality
dan dapat diimpor menggunakan library
seperti pandas di Python.
Lalu, kita dapat mengimpor library yang diperlukan untuk menerapkan Naïve Bayes menggunakan library sklearn yang telah disebutkan sebelumnya.
Selanjutnya, unggah dataset yang
telah diunduh sebelumnya ke Google Drive dari https://www.kaggle.com/datasets/shruthiiiee/orange-quality Oleh karena itu, nanti kita akan mengimpor dataset
nya melalui Google Drive.
Kemudian, kita bisa mengimport Dataset Jeruk dengan menggunakan G.drive
Dalam kasus ini, jalur yang disediakan menunjukkan bahwa
file dataset disimpan di Google Drive.
Selanjutnya, kita dapat mengekstrak data dari Dataset Jeruk,
yang memiliki 11 kategori, termasuk
{ Size, Weight, Brix,
pH, Softness, HarvestTime, Ripeness, Color, Variety, Blemishes (Y/N), Quality }
Grafik batang bertanda “Jumlah Jeruk berdasarkan Warna” ditampilkan dalam gambar dibawah Grafik
ini menunjukkan jumlah berbagai kualitas jeruk dari rentang 1-5. Kualitas jeruk diwakili oleh sumbu x, sedangkan jumlah masing-masing warna ditunjukkan oleh sumbu y.
Poin penting :
Jingga adalah warna jeruk yang
paling populer, diikuti oleh warna jingga muda dan jingga tua.
Varietas jingga-merah dan
kuning-jingga kurang umum.
Detail tambahan:
Kemungkinan besar, koleksi jeruk
yang diurutkan berdasarkan warna berfungsi sebagai dasar untuk grafik dan kita
dapat membandingkan popularitas berbagai warna jingga dengan menggunakan grafik,
lalu grafik ini juga dapat digunakan untuk memantau pergeseran dalam
popularitas relatif berbagai warna jingga dari waktu ke waktu.
kemudian kita akan mengkodekan
variabel kategori yang berada dalam dataset jeruk_ds menggunakan LabelEncoder
dari library sklearn.preprocessing.
Tujuan dari proses ini adalah
untuk mempersiapkan data kategori sehingga dapat digunakan dalam model machine
learning atau analisis data lainnya yang membutuhkan input numerik, karena
sebagian besar algoritma hanya dapat memproses data dalam bentuk numerik.
selanjutnya kita akan melakukan
beberapa transformasi pada dataset jeruk_ds terkait kolom 'Quality (1-5)' dan
menyiapkan data untuk digunakan dalam analisis atau pemodelan lebih lanjut.
Setelah transformasi ini, kolom
'Quality' dalam jeruk_ds berisi nilai kategori diskrit sesuai dengan bin dan
label yang telah ditentukan.
lalu lakukan Define feature
columns dan target column sebagai berikut:
Dengan menentukan feature columns
dan target column, kita siap untuk menggunakan X
sebagai input untuk pemodelan dan y
sebagai target yang akan
diprediksi atau dianalisis. Langkah ini penting dalam mempersiapkan data
sebelum dilakukan proses pemodelan atau analisis lebih lanjut.
setelah itu kita akan memisahkan dataset menjadi set pelatihan (training set) dan set pengujian (test set) lalu menggunakan fungsi train_test_split dari library sklearn.model_selection, lalu inisialisasi dan latih Naive Bayes classifier, lakukan prediksi dengan menggunakan Naive Bayes classifier yang telah dilatih sebelumnya pada data test,setelah lakukan prediksi kita akan mengevaluasi kinerja dari model klasifikasi dengan membandingkan nilai prediksi yang dihasilkan dengan nilai sebenarnya dari test set.
Confusion matrix akan berbentuk matriks dengan baris dan kolom yang mewakili label kelas. Contohnya, jika Anda memiliki 5 kelas (misalnya kelas 1, 2, 3, 4, dan 5), maka confusion matrix akan memiliki dimensi 5x5. Nilai di dalam matriks akan menunjukkan jumlah prediksi yang benar dan salah untuk setiap pasangan kelas (misalnya, berapa banyak sampel yang diklasifikasikan sebagai kelas 1 yang sebenarnya adalah kelas 1, dan sebagainya).
setelah semua itu selesai kita akan menghitung akurasi dari model klasifikasi tersebut.
Ini adalah salah satu metrik
evaluasi yang paling umum digunakan untuk model klasifikasi, tetapi perlu
diperhatikan bahwa akurasi mungkin tidak selalu menjadi metrik yang paling
informatif terutama jika dataset tidak seimbang (imbalance).
lalu kita akan membuat plot count
(jumlah) dari jeruk berdasarkan warna mereka menggunakan sns.countplot dari
library Seaborn.
Plot ini akan menampilkan jumlah perbandingan antara data jeruk awal dan setelah di prediksi untuk setiap kategori quality yang ada dalam dataset kita.
Keuntungan
menggunakan Naive Bayes Classifier:
1. Mudah
diimplementasikan: Naive Bayes Classifier relatif mudah untuk
diimplemetasikan karena tidak menggunakan optimasi numerik, perhitungan
matriks, dan lainnya.
2. Cepat:
Algoritma ini cepat dalam membangun model dan membuat prediksi, sehingga dapat
digunakan untuk prediksi real-time.
3. Efisien:
Efisien dalam pelatihan dan penggunaannya, sehingga dapat digunakan untuk data
binary atau polinom.
4. Bisa digunakan
untuk klasifikasi multi-kelas: Naive Bayes Classifier dapat digunakan untuk
memprediksi probabilitas posterior dari beberapa kelas variabel.
5. Banyak digunakan
dalam aplikasi teks: Klasifikasi Naive Bayes banyak digunakan dalam
klasifikasi teks, seperti penyaringan spam dan analisis sentimen, karena fitur
prediksi multi-kelas.
6. Dapat digunakan
untuk sistem rekomendasi: Naive Bayes Classifier dapat digunakan bersama
dengan algoritma lain, seperti pemfilteran kolaboratif, untuk membuat sistem
rekomendasi yang dapat menyaring informasi yang tidak terlihat dan memprediksi
preferensi pengguna.
Kekurangan
menggunakan Naive Bayes Classifier:
1. Perkiraan
kemungkinan kelas yang tidak akurat: Kekurangan dari metode Naive Bayes
adalah perkiraan kemungkinan kelas yang tidak akurat.
2. Batasan atau
threshold harus ditentukan secara manual: Batasan atau threshold harus
ditentukan secara manual, yang dapat mempengaruhi akurasi prediksi.
3. Kurang efektif
untuk data kontinyu: Naive Bayes Classifier kurang efektif untuk data
kontinyu karena memerlukan perhitungan densitas Gauss yang lebih kompleks.
Kesimpulan
Dengan menggunakan algoritma Naive Bayes, kita dapat mengklasifikasikan data jeruk berdasarkan berbagai fitur seperti ukuran, warna, berat, dan lain-lain untuk menentukan kualitas atau jenis jeruk tersebut.