Algoritma Naive Bayes dalam Pembelajaran Mesin
Algoritma Pengklasifikasi Naive Bayes
Classifier adalah algoritma pembelajaran mesin yang mengkategorikan data ke dalam satu atau beberapa "kelas". Classifier email adalah salah satu contoh classifier yang memindai email untuk memfilternya berdasarkan label kelas: Spam atau Bukan Spam.
Pengklasifikasi Naive Bayes dalam pembelajaran mesin adalah pembelajaran mesin yang diawasi untuk tugas klasifikasi.
Naive Bayes digunakan untuk memecahkan masalah klasifikasi. Ini memprediksi berdasarkan probabilitas suatu objek. Naive Bayes didasarkan pada Teorema Bayes dan sebagian besar digunakan untuk klasifikasi teks. Naive Bayes adalah algoritma klasifikasi probabilistik yang mudah diimplementasikan dan cepat untuk dilatih.
Karena pengklasifikasi Naive Bayes didasarkan pada teorema Bayes, maka pengklasifikasi ini dikenal sebagai pengklasifikasi probabilitas. Ini memprediksi berdasarkan probabilitas suatu item.
Alasan disebut Naïve Bayes?
Pengklasifikasi Naive Bayes memiliki dua kata: Naive dan Bayes. Kenapa Navie? Algoritma ini memperlakukan semua kalimat kata dengan cara yang sama. Misalnya “Anda adalah” dan “Apakah Anda” adalah sama untuk algoritma ini. Hal ini tidak bergantung pada fitur atau kemunculan fitur. Jika Anda ingin mengidentifikasi buah Apel maka Anda memerlukan warna merah, bentuk bulat, rasa manis untuk dikenali sebagai buah Apel. Artinya, fitur-fitur ini tidak bergantung satu sama lain.
- Pengklasifikasi Naive Bayes mengasumsikan bahwa fitur-fiturnya tidak bergantung satu sama lain. Karena hal ini jarang mungkin dilakukan dalam data kehidupan nyata, maka pengklasifikasi disebut naif.
- Algoritma klasifikasi ini didasarkan pada teorema Bayes yang dikenal dengan Naive Bayes Classifier.
Teorema Naïve Bayes
Teorema Bayes digunakan untuk mencari probabilitas suatu hipotesis dengan probabilitas bersyarat yang bergantung pada pengetahuan sebelumnya. Teorema ini dinamai Thomas Bayes. Pengklasifikasi Naive Bayes bekerja berdasarkan prinsip probabilitas bersyarat, seperti yang diberikan oleh teorema Bayes.
Untuk memahami teorema Bayes, mari kita lihat contoh pengklasifikasi naif bayes sederhana dalam pelemparan dua koin. Ruang sampel ini dapat kita peroleh dengan cara melempar dua buah uang logam: {HH, HT, TH, TT}. Jadi, peluang terjadinya kejadian-kejadian ini adalah:
- Mendapatkan dua kepala = 1/4
- Setidaknya satu ekor = 3/4
- Koin kedua menjadi kepala mengingat koin pertama adalah ekor = 1/2
- Mendapatkan dua kepala diberi koin pertama adalah kepala = 1/2
Teorema Bayes menghitung peluang terjadinya suatu peristiwa berdasarkan peluang terjadinya peristiwa lain yang telah terjadi. Rumus teorema Bayes diberikan sebagai:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Peluang genap A ketika genap B telah terjadi. Probabilitas P(B) tidak boleh nol.
- Anda perlu mencari peluang kejadian A, yang diberikan jika kejadian B (bukti) benar.
- P(A) adalah a priori (a priori, yaitu peluang suatu kejadian yang diamati sebelum pembuktian) dari A. Di sini, kejadian B adalah nilai dari suatu kejadian yang tidak diketahui.
- P(A|B) adalah peluang posterior kejadian B, yaitu peluang kejadian setelah melihat buktinya.
Contoh kerja Pengklasifikasi Naïve Bayes
Mari kita ambil contoh belanja untuk memahami cara kerja Bayes Naive Classifier. Dalam kumpulan data ini, ada kumpulan data sampel kecil sebanyak 30 baris untuk contoh ini.
Dataset
Masalahnya adalah memprediksi apakah seseorang akan membeli suatu produk pada kombinasi Hari, Diskon, dan Pengiriman Gratis tertentu menggunakan Teorema Naive Bayes.
Langkah 1) Kami akan membuat tabel frekuensi untuk setiap atribut menggunakan jenis input yang disebutkan dalam kumpulan data, seperti hari, diskon, dan pengiriman gratis.
Misalkan kejadian 'Beli' dilambangkan dengan 'A', dan variabel independen yaitu 'Diskon', 'Gratis ongkos kirim', dan 'Hari' dilambangkan dengan 'B'. Kita akan menggunakan kejadian dan variabel ini untuk menerapkan teorema Bayes.
Langkah 2) Sekarang mari kita hitung tabel Kemungkinan satu per satu.
Contoh 1:
Berdasarkan tabel kemungkinan ini, kami akan menghitung probabilitas bersyarat seperti di bawah ini.
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
Dan, cari P(A/B) menggunakan teorema Bayes,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
Demikian pula jika A adalah Beli, maka
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Catatan: Karena P(Beli | Hari Kerja) lebih besar daripada P(Tidak Beli | Hari Kerja), maka kita dapat menyimpulkan bahwa kemungkinan besar pelanggan akan membeli produk tersebut pada Hari Kerja.
Langkah 3) Demikian pula, kita dapat menghitung kemungkinan terjadinya suatu peristiwa berdasarkan ketiga variabel tersebut. Sekarang kita akan menghitung tabel Kemungkinan untuk ketiga variabel menggunakan tabel frekuensi di atas.
Contoh 2:
Sekarang, dengan menggunakan ketiga tabel Kemungkinan ini, kami akan menghitung apakah pelanggan kemungkinan akan melakukan pembelian berdasarkan kombinasi spesifik 'Hari', 'Diskon', dan 'Gratis ongkos kirim'.
Di sini, mari kita ambil kombinasi faktor-faktor berikut:
- Hari = Hari Libur
- Diskon = Ya
- Pengiriman Gratis = Ya
Kapan, A = Beli
Hitunglah probabilitas bersyarat pembelian pada kombinasi hari, diskon, dan pengiriman gratis berikut.
Dimana B adalah:
- Hari = Hari Libur
- Diskon = Ya
- Pengiriman Gratis = Ya
Dan A = Beli
Oleh karena itu,
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
Kapan, A = Tidak Ada Beli
Demikian pula, Hitunglah probabilitas bersyarat pembelian pada kombinasi hari, diskon, dan pengiriman gratis berikut.
Dimana B adalah:
- Hari = Hari Libur
- Diskon = Ya
- Pengiriman Gratis = Ya
Dan A = Tidak Ada Beli
Oleh karena itu,
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
Langkah 4) Karenanya,
Probabilitas pembelian = 0.986
Probabilitas tidak ada pembelian = 0.027
Terakhir, kami memiliki probabilitas bersyarat untuk membeli pada hari ini. Sekarang mari kita menggeneralisasikan probabilitas-probabilitas ini untuk memperoleh Kemungkinan terjadinya peristiwa-peristiwa tersebut.
- Jumlah probabilitas = 0.986 + 0.027 = 1.013
- Kemungkinan pembelian = 0.986 / 1.013 = 97.33 %
- Kemungkinan Tidak Ada Pembelian = 0.027 / 1.013 = 2.67 %
Perhatikan bahwa 97.33% lebih besar dari 2.67%. Dapat disimpulkan bahwa rata-rata pelanggan akan membeli pada hari libur dengan diskon dan pengiriman gratis.
Jenis Model Naïve Bayes
Ada banyak jenis Pengklasifikasi Naive Bayes. Di sini kita telah membahas pengklasifikasi Multinomial, Bernoulli dan Gaussian Naive Bayes.
1. Multinomial Naif Bayes
Model Naive Bayes jenis ini digunakan untuk masalah klasifikasi dokumen. Ia bekerja dengan fitur yang mewakili frekuensi kata dalam dokumen. Pengklasifikasi mempertimbangkan kemunculan dan jumlah kata untuk menentukan kemungkinan suatu dokumen termasuk dalam kategori tertentu, seperti olahraga, politik, atau teknologi.
2. Bernoulli Naif Bayes
Hal ini mirip dengan Naive Bayes multinomial. Pengklasifikasi Bernoulli Naive Bayes digunakan untuk tugas klasifikasi dokumen. Namun, ini menggunakan prediktor boolean. Ini mewakili apakah suatu kata ada atau tidak dan hanya mengambil nilai Ya atau Tidak. Pengklasifikasi menghitung probabilitas berdasarkan apakah sebuah kata muncul dalam teks atau tidak.
3.Gaussian Naif Bayes
Pengklasifikasi ini digunakan jika nilai kontinu tetapi bukan nilai diskrit. Pengklasifikasi ini menghitung probabilitas menggunakan parameter Gaussian distribusi, yaitu mean dan varians.
Rumus probabilitas bersyarat berubah menjadi,
Manfaat dan Keterbatasan Pengklasifikasi Naive Bayes
Terdapat berbagai kelebihan dan kekurangan algoritma Naive Bayes dalam pembelajaran mesin.
Manfaat Pengklasifikasi Naive Bayes
- Kesederhanaan dan Efisiensi: Naive Bayes sederhana dan mudah untuk dilatih dan diterapkan. Ini efisien karena biaya komputasi yang rendah. Itu dapat menangani kumpulan data besar secara efisien.
- Pelatihan dan Prediksi Cepat: Naive Bayes tidak memerlukan banyak data pelatihan karena independensi antar fitur. Itu dapat memprediksi dengan cepat setelah model dilatih.
- Skalabilitas: Naive Bayes dapat menangani kumpulan data berdimensi tinggi dengan banyak fitur. Ia berkinerja baik bahkan ketika jumlah fitur lebih banyak daripada jumlah contoh pelatihan. Ini berskala dengan jumlah titik data dan prediktor. Ini menangani data kontinu dan diskrit.
- Kekokohan terhadap Fitur yang Tidak Relevan: Itu tidak sensitif terhadap fitur yang tidak relevan.
- Bekerja dengan baik dengan Set Pelatihan Kecil: Naive Bayes dapat memberikan hasil yang wajar meskipun dengan data pelatihan yang terbatas. Ini dapat menangani situasi di mana jumlah contoh pelatihan sedikit. Itu tidak memerlukan banyak data pelatihan.
Batasan Pengklasifikasi Naive Bayes
Naif Bayes masuk Mesin belajar mengasumsikan bahwa semua fitur tidak bergantung satu sama lain. Jadi, ia tidak dapat mempelajari hubungan antara berbagai fitur dalam data. Ia memperlakukan setiap fitur seolah-olah tidak ada hubungannya dengan fitur lainnya.
Untuk mengatasi masalah ini, Anda bisa menggunakan Pohon Keputusan, Random Forests, Support Vector Machines (SVM), Neural Networks, dll. Algoritma ini memiliki kemampuan untuk mempelajari hubungan dan ketergantungan yang kompleks antara fitur dalam data. Jadi, ini dapat memprediksi hasil yang lebih akurat.
Penerapan Pengklasifikasi Naive Bayes
Karena algoritme ini cepat dan efisien, Anda dapat menggunakannya untuk membuat prediksi secara real-time.
Deteksi Spam
Layanan email (seperti Gmail) menggunakan algoritma ini untuk menentukan apakah suatu email merupakan spam. Algoritma ini sangat bagus untuk penyaringan spam.
Analisis Sentimen
Itu dapat mengklasifikasikan teks menjadi positif, negatif, atau netral berdasarkan fitur seperti pilihan kata, struktur kalimat, dan konteks. Ia menemukan aplikasi dalam pemantauan media sosial, ulasan pelanggan, dan riset pasar.
Klasifikasi Dokumen
Ini dapat mengklasifikasikan dokumen ke dalam kategori seperti olahraga, politik, teknologi, atau keuangan berdasarkan frekuensi atau keberadaan kata atau fitur tertentu dalam dokumen.
Sistem Rekomendasi
Itu dapat menganalisis preferensi pengguna, data historis, dan fitur item untuk memprediksi minat atau preferensi pengguna untuk merekomendasikan produk, film, atau artikel.
Algoritme pengklasifikasi ini juga digunakan dalam Pengenalan Wajah, Prediksi Cuaca, Diagnosis Medis, Belanja, Klasifikasi Berita, dll. Anda dapat menerapkan Naive Bayes di Python. Ada sklearn pengklasifikasi Naive Bayes, yaitu sklearn.naive_bayes. Ini adalah modul yang mengimplementasikan algoritma ini.
Kesimpulan
Algoritme Naive Bayes dalam pembelajaran mesin adalah pengklasifikasi yang banyak digunakan dalam deteksi spam, klasifikasi berita, analisis sentimen, prediksi cuaca, belanja, dll. Algoritma Naive Bayes didasarkan pada Teorema Bayes. Ini algoritma sederhana dan mudah diterapkan. Karena cepat kita dapat menggunakannya dalam aplikasi real-time. Kerugian terbesarnya adalah ia mengasumsikan fitur-fitur independen (Karena fitur-fitur independen jarang dimungkinkan dalam kehidupan nyata, maka ini dikenal sebagai Naif). Ini memperlakukan setiap fitur secara setara. Untuk mengatasi kelemahan ini Anda dapat menggunakan pengklasifikasi lain seperti Decision Tree, Random Forest, Support Vector Machine (SVM) dll.