Algoritma Naive Bayes
Oleh = Mochammad Haldi Widianto
Apa itu Algoritma Naive Bayes
Naïve Bayes Classifier merupakan sebuah metoda klasifikasi yang berakar pada teorema Bayes . Metode pengklasifikasian dg menggunakan metode probabilitas dan statistik yg dikemukakan oleh ilmuwan Inggris Thomas Bayes , yaitu memprediksi peluang di masa depan berdasarkan pengalaman di masa sebelumnya sehingga dikenal sebagai Teorema Bayes . Ciri utama dr Naïve Bayes Classifier ini adalah asumsi yg sangat kuat (naïf) akan independensi dari masing-masing kondisi / kejadian.
Menurut Olson Delen (2008) menjelaskan Naïve Bayes unt setiap kelas keputusan, menghitung probabilitas dg syarat bahwa kelas keputusan adalah benar, mengingat vektor informasi obyek. Algoritma ini mengasumsikan bahwa atribut obyek adalah independen. Probabilitas yang terlibat dalam memproduksi perkiraan akhir dihitung sebagai jumlah frekuensi dr ” master ” tabel keputusan.
Naive Bayes Classifier bekerja sangat baik dibanding dengan model classifier lainnya. Hal ini dibuktikan oleh Xhemali , Hinde Stone dalam jurnalnya “Naïve Bayes vs. Decision Trees vs. Neural Networks in the Classification of Training Web Pages” mengatakan bahwa “Naïve Bayes Classifier memiliki tingkat akurasi yg lebih baik dibandingmodel classifier lainnya”.
Gambar 1. Naive Bayes
Keuntungan penggunan adalah bahwa metoda ini hanya membutuhkan jumlah data pelatihan ( training data ) yg kecil unt menentukan estimasi parameter yg diperlukan dalam proses pengklasifikasian. Karena yg diasumsikan sebagai variable independent, maka hanya varians dr suatu variable dalam sebuah kelas yg dibutuhkan unt menentukan klasifikasi, bukan keseluruhan dr matriks kovarians.
Kegunaan Naïve Bayes
- Mengklasifikasikan dokumen teks seperti teks berita ataupun teks akademis
- Sebagai metode machine learning yang menggunakan probabilitas
- Untuk membuat diagnosis medis secara otomatis
- Mendeteksi atau menyaring spam
Kelebihan Naïve Bayes
- Bisa dipakai untuk data kuantitatif maupun kualitatif
- Tidak memerlukan jumlah data yang banyak
- Tidak perlu melakukan data training yang banyak
- Jika ada nilai yang hilang, maka bisa diabaikan dalam perhitungan.
- Perhitungannya cepat dan efisien
- Mudah dipahami
- Mudah dibuat
- Pengklasifikasian dokumen bisa dipersonalisasi, disesuaikan dengan kebutuhan setiap orang
- Jika digunakan dalaam bahasa pemrograman, code-nya sederhana
- Bisa digunakan untuk klasifikasi masalah biner ataupun multiclass
Kekurangan Naïve Bayes
- Apabila probabilitas kondisionalnya bernilai nol, maka probabilitas prediksi juga akan bernilai nol
- Asumsi bahwa masing-masing variabel independen membuat berkurangnya akurasi, karena biasanya ada korelasi antara variabel yang satu dengan variabel yang lain
- Keakuratannya tidak bisa diukur menggunakan satu probabilitas saja. Butuh bukti-bukti lain untuk membuktikannya.
- Untuk membuat keputusan, diperlukan pengetahuan awal atau pengetahuan mengenai masa sebelumnya. Keberhasilannya sangat bergantung pada pengetahuan awal tersebut Banyak celah yang bisa mengurangi efektivitasnya
Dirancang untuk mendeteksi kata-kata saja, tidak bisa berupa gambar
Baca Juga: Implementasi Algoritma Bubble Sort dengan Bahasa Pemrograman Python
Berikut ini adalah teknik-teknik utama untuk meningkatkan performa Naive Bayes
Algoritma Naive Bayes didasarkan pada Teorema Bayes, yang menggabungkan probabilitas kejadian sebelumnya dengan bukti baru untuk membuat prediksi. Asumsi independensi yang kuat ini membuatnya “naive” (sederhana), tetapi dalam banyak kasus, fitur-fitur sebenarnya saling bergantung. Oleh karena itu, pemahaman mendalam tentang bagaimana mengoptimalkan algoritma ini menjadi penting untuk mendapatkan performa yang optimal.
1. Pra Seleksi dan Pra Transformasi Data
a. Pemilihan Fitur (Feature Selection)
Pemilihan fitur yang tepat sangat penting untuk meningkatkan akurasi model Naive Bayes. Menggunakan semua fitur yang tersedia tidak selalu memberikan hasil terbaik. Beberapa metode pemilihan fitur meliputi:
- Chi-Square Test: Mengidentifikasi fitur yang memiliki korelasi kuat dengan kelas target.
- Mutual Information: Mengukur informasi yang diperoleh tentang kelas target melalui fitur tertentu.
- Filter-Based Feature Selection: Menggunakan statistik untuk memilih fitur yang paling relevan.
b. Penanganan Fitur Tidak Relevan
Menghapus fitur yang tidak relevan atau redundan dapat membantu dalam mengurangi noise dan meningkatkan performa model. Teknik seperti analisis komponen utama (PCA) dapat digunakan untuk mengurangi dimensi fitur dengan mempertahankan variasi data sebanyak mungkin.
c. Pra Normalisasi Data
Pra Normalisasi atau penskalaan data dapat membantu model Naive Bayes dalam menangani data dengan skala yang berbeda. Meskipun Naive Bayes tidak terlalu dipengaruhi oleh skala fitur, beberapa kasus dapat diuntungkan dari normalisasi, terutama ketika fitur memiliki rentang nilai yang sangat bervariasi.
2. Variasi Naive Bayes
Naive Bayes memiliki beberapa varian yang dapat dipilih berdasarkan jenis data yang digunakan:
- Gaussian Naive Bayes: Cocok untuk data dengan distribusi normal (Gaussian).
- Multinomial Naive Bayes: Ideal untuk data diskrit seperti hitungan kata dalam teks.
- Bernoulli Naive Bayes: Digunakan untuk data biner (fitur yang hanya memiliki dua nilai, 0 atau 1).
Memilih varian yang tepat berdasarkan jenis data dapat meningkatkan kinerja model secara signifikan.
3. Penggunaan Teknik Pra Proses
a. Pra Normalisasi Teks
Untuk aplikasi teks, pranormalisasi seperti menghapus stop words, stemming, dan lemmatization dapat meningkatkan akurasi Naive Bayes. Langkah-langkah ini mengurangi variasi kata yang tidak perlu dan membantu model memahami konten dengan lebih baik.
b. Pra Normalisasi Kategori
Untuk data kategori, konversi data ke format yang dapat diproses seperti pengkodean label atau pengkodean one-hot sangat penting. Ini memastikan bahwa data kategori diinterpretasikan dengan benar oleh algoritma Naive Bayes.
c. Penanganan Missing Values
Menangani nilai yang hilang (missing values) dengan cara yang tepat seperti imputasi atau penghapusan dapat membantu dalam menjaga integrasi model dan meningkatkan prediksi.
4. Teknik Ensemble
a. Bagging dan Boosting
Menggabungkan beberapa model Naive Bayes dengan teknik ensemble seperti bagging (bootstrap aggregating) atau boosting dapat meningkatkan akurasi dengan mengurangi variabilitas dan bias.
b. Voting Classifier
Menggunakan Naive Bayes sebagai bagian dari voting ensemble classifier, di mana prediksi akhir dibuat berdasarkan suara mayoritas dari beberapa algoritma berbeda, dapat memberikan hasil yang lebih robust.
5. Penyempurnaan Model
a. Tuning Parameter
Menyesuaikan parameter seperti nilai smoothing (misalnya, parameter alpha dalam Multinomial Naive Bayes) dapat mengatasi masalah zero-frequency dan meningkatkan kinerja model. Pengaturan nilai alpha yang tepat sangat penting untuk menangani kasus di mana fitur tertentu mungkin tidak muncul dalam data pelatihan tetapi muncul dalam data pengujian.
b. Cross-Validation
Menggunakan teknik cross-validation untuk mengukur kinerja model pada subset data yang berbeda dapat membantu dalam memilih parameter terbaik dan menghindari overfitting.
c. Menggunakan Penanganan Ketidakseimbangan Data
Jika data memiliki kelas yang tidak seimbang, teknik seperti pengulangan minoritas (oversampling) atau pengurangan mayoritas (undersampling) dapat digunakan untuk memastikan bahwa model Naive Bayes tidak terlalu condong ke kelas yang lebih dominan.
6. Evaluasi dan Iterasi
a. Evaluasi Model
Setelah mengoptimalkan model, penting untuk mengevaluasi kinerja menggunakan metrik seperti akurasi, presisi, recall, dan F1-score. Metrik ini memberikan wawasan yang lebih dalam tentang bagaimana model bekerja pada data baru.
b. Iterasi Pengembangan
Mengoptimalkan model adalah proses iteratif. Menggunakan umpan balik dari evaluasi untuk memperbaiki model terus menerus adalah kunci untuk mencapai kinerja yang optimal
Referensi:
- https://arfianhidayat.com/algoritma-naive-bayes
- https://www.raymond4ds.com/2018/11/pengertian-algoritma-naive-bayes.html
Comments :