Algoritma Naive Bayes dalam Pembelajaran Mesin
⚡ Ringkasan Cerdas
Naive Bayes adalah algoritma klasifikasi probabilistik terawasi yang dibangun berdasarkan teorema Bayes, dengan asumsi setiap fitur berkontribusi secara independen. Teorinya, sebuah lokakarya yang telah dikerjakanping Sebagai contoh, tiga varian model, manfaat, keterbatasan, dan aplikasi di dunia nyata dibahas di bawah ini.
Algoritma Pengklasifikasi Naive Bayes
Pengklasifikasi adalah algoritma pembelajaran mesin yang mengelompokkan data ke dalam satu atau lebih dari sekumpulan "kelas". Pengklasifikasi email adalah salah satu contoh yang familiar: ia memindai setiap pesan yang masuk dan melampirkan label kelas Spam atau Bukan Spam.
Pengklasifikasi Naive Bayes dalam pembelajaran mesin adalah sebuah pembelajaran yang diawasi Algoritma yang digunakan untuk tugas klasifikasi.
Diagram di bawah ini menguraikan alur tersebut.
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, ia juga dikenal sebagai pengklasifikasi probabilitas. Ia memprediksi berdasarkan probabilitas suatu item.
Mengapa Disebut Naive Bayes?
Nama Naive Bayes terdiri dari dua bagian: Naive dan Bayes. Mengapa naive? Algoritma ini mengabaikan urutan kemunculan fitur, sehingga "Anda adalah" dan "Apakah Anda" terlihat identik baginya. Algoritma ini juga mengasumsikan bahwa tidak ada fitur yang memengaruhi fitur lainnya. Untuk mengenali buah apel, Anda menggunakan warna merah, bentuk bulat, dan rasa manis, dan algoritma memperlakukan setiap petunjuk tersebut sebagai bukti yang terpisah dan independen.
- Pengklasifikasi Naive Bayes mengasumsikan bahwa fitur-fitur tersebut saling independen. Karena hal ini jarang terjadi pada data kehidupan nyata, pengklasifikasi ini disebut naif.
- Algoritma klasifikasi ini didasarkan pada teorema Bayes, sehingga dikenal sebagai Pengklasifikasi Naive Bayes.
Teorema Naive Bayes
Teorema Bayes digunakan untuk menemukan probabilitas suatu hipotesis dengan probabilitas bersyarat yang bergantung pada pengetahuan sebelumnya. Teorema ini dinamai menurut Thomas Bayes. Pengklasifikasi Naive Bayes bekerja berdasarkan prinsip probabilitas bersyarat, seperti yang diberikan oleh teorema Bayes.
Untuk memahami teorema Bayes, mari kita lihat contoh sederhana pengklasifikasi Naive Bayes yaitu melempar dua koin. Kita bisa mendapatkan ruang sampel ini dengan melempar dua koin: {HH, HT, TH, TT}. Jadi, probabilitas 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 probabilitas terjadinya suatu peristiwa berdasarkan probabilitas peristiwa lain yang telah terjadi. Rumus teorema Bayes diberikan sebagai berikut:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) adalah probabilitas terjadinya peristiwa A ketika peristiwa 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 probabilitas awal A, yaitu probabilitas kejadian sebelum bukti apa pun diamati. Di sini, kejadian B adalah nilai dari suatu kejadian yang tidak diketahui.
- P(A|B) adalah probabilitas posterior dari kejadian A, yaitu probabilitas A setelah melihat bukti B.
Contoh Penerapan Pengklasifikasi Naive Bayes
Cara tercepat untuk melihat cara kerja rumus tersebut adalah dengan menjalankannya secara manual.
Mari kita ambil contoh sebuah toko.ping Untuk memahami cara kerja Bayes Naive Classifier. Dalam dataset ini, terdapat sampel dataset 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 sebagai 'A', dan variabel independen, yaitu 'Diskon', 'Gratis ongkos kirim', dan 'Hari', dilambangkan sebagai '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 %
Kedua skor tersebut jika dijumlahkan menjadi 1.013, bukan 1, karena asumsi independensi membuat setiap estimasi bersifat perkiraan, sehingga membagi dengan total akan mengubah skalanya menjadi persentase.
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-jenis Model Naive Bayes
Ada banyak jenis Pengklasifikasi Naive Bayes. Di sini kita telah membahas pengklasifikasi Multinomial, Bernoulli dan Gaussian Naive Bayes.
| Varian | Jenis fitur | Penggunaan khas |
|---|---|---|
| Multinomial | Jumlah kata | Klasifikasi topik dan dokumen |
| Bernoulli | Bendera biner ada atau tidak ada | Teks pendek dan penyaringan spam |
| Gaussian | Nilai numerik kontinu | Pembacaan dan pengukuran sensor |
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,
The scikit-belajar library menambahkan dua varian lagi: Complement Naive Bayes untuk teks yang tidak seimbang dan Categorical Naive Bayes untuk kategori diskrit.
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 adanya independensi antar fitur. Metode ini 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 bahkan dengan data pelatihan yang terbatas. Algoritma ini dapat menangani situasi di mana jumlah instance pelatihan sedikit.
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.
Peringatan kedua: probabilitas kelas yang dilaporkannya kurang akurat, sehingga angka kepercayaan yang terlampir pada prediksi bukanlah probabilitas yang dapat diandalkan.
Untuk mengatasi masalah ini, Anda bisa menggunakan Pohon Keputusan, Random Forests, Support Vector Machines (SVM), Jaringan Saraf Tiruan dll. Algoritma-algoritma ini memiliki kemampuan untuk mempelajari hubungan dan ketergantungan yang kompleks antar fitur dalam data. Sehingga 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 GmailAlgoritma ini digunakan untuk menentukan apakah suatu email termasuk spam. Algoritma ini sangat baik 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.
Algoritma pengklasifikasi ini juga digunakan dalam Pengenalan Wajah, Prediksi Cuaca, Diagnosis Medis, dan Toko.ping, Klasifikasi Berita, dll. Anda dapat menerapkan Naive Bayes di Python, di mana modul sklearn.naive_bayes menyediakan setiap varian yang dijelaskan di atas.








