Klasifikasi Naive
Bayes
Misalkan Anda adalah seorang manajer
produk, Anda ingin mengklasifikasikan review/ulasan pelanggan dalam kelas
positif dan negatif. Atau Sebagai manajer pinjaman, Anda ingin mengidentifikasi
pemohon pinjaman mana yang aman atau berisiko? Sebagai analis layanan
kesehatan, Anda ingin memprediksi pasien mana yang dapat menderita penyakit diabetes.
Semua contoh memiliki jenis permasalahan yang sama yaitu untuk
mengklasifikasikan ulasan, pemohon pinjaman, dan pasien.
Naive Bayes adalah algoritma klasifikasi paling mudah dan cepat, yang cocok untuk sebagian besar data. Klasifikasi Naive Bayes berhasil digunakan dalam berbagai aplikasi seperti penyaringan spam, klasifikasi teks, analisis sentimen, dan sistem pemberi rekomendasi. Ia menggunakan teorema Bayes probabilitas untuk prediksi kelas yang tidak diketahui.
Dalam tutorial ini, Anda akan belajar tentang sem berikut ini:
- Alur Kerja Klasifikasi
- Apa itu classifier Naive Bayes?
- Bagaimana cara kerja pengklasifikasi Naive Bayes?
- Bangunan pengklasifikasi di Scikit-learn
Alur Kerja
Klasifikasi
Setiap kali Anda melakukan
klasifikasi, langkah pertama adalah memahami masalah dan mengidentifikasi fitur
dan label potensial. Fitur adalah karakteristik atau atribut yang mempengaruhi
hasil label. Misalnya, dalam hal distribusi pinjaman, manajer bank mengidentifikasi
pekerjaan, pendapatan, usia, lokasi, riwayat pinjaman sebelumnya, riwayat
transaksi, dan skor kredit nasabah. Karakteristik ini dikenal sebagai fitur
yang membantu model mengklasifikasikan pelanggan.
Klasifikasi memiliki dua fase, fase pembelajaran, dan fase evaluasi. Pada fase pembelajaran, classifier melatih modelnya pada dataset yang diberikan dan pada fase evaluasi, ia menguji kinerja classifier. Kinerja dievaluasi berdasarkan berbagai parameter seperti akurasi, kesalahan, presisi, dan penarikan/recall.
Apa itu Naive Bayes
Classifier?
Naive Bayes adalah teknik klasifikasi
statistik berdasarkan Bayes Theorem. Ini adalah salah satu algoritma
pembelajaran terawasi yang paling sederhana. Klasifikasi Naive Bayes adalah
algoritma yang cepat, akurat dan andal. Klasifikasi Naif Bayes memiliki akurasi
dan kecepatan tinggi pada dataset besar.
Klasifikasi Naive Bayes mengasumsikan bahwa efek fitur tertentu dalam suatu kelas tidak tergantung pada fitur lainnya. Misalnya, pemohon pinjaman diinginkan atau tidak tergantung pada pendapatannya, pinjaman sebelumnya dan riwayat transaksi, usia, dan lokasi. Sekalipun fitur-fitur ini saling bergantung, fitur-fitur ini masih dianggap independen. Asumsi ini menyederhanakan perhitungan, dan karena itu dianggap naif. Asumsi ini disebut independensi kondisional kelas.
- P (h): probabilitas hipotesis h menjadi benar (terlepas dari data). Ini dikenal sebagai probabilitas sebelumnya dari h.
- P (D): probabilitas data (terlepas dari hipotesis). Ini dikenal sebagai probabilitas sebelumnya.
- P (h | D): probabilitas hipotesis h diberikan data D. Ini dikenal sebagai probabilitas posterior.
- P (D | h): probabilitas data d mengingat bahwa hipotesis h adalah benar. Ini dikenal sebagai probabilitas posterior.
Bagaimana cara kerja
pengklasifikasi Naif Bayes?
Mari kita memahami cara kerja Naif
Bayes melalui contoh. Diberikan contoh kondisi cuaca dan bermain olahraga. Anda
perlu menghitung probabilitas bermain olahraga. Sekarang, Anda perlu
mengklasifikasikan apakah pemain akan bermain atau tidak, berdasarkan kondisi
cuaca.
Pendekatan Pertama
(Dalam hal fitur tunggal)
Klasifikasi Naive Bayes menghitung
probabilitas suatu peristiwa dalam langkah-langkah berikut:
- Langkah 1: Hitung probabilitas sebelumnya untuk label kelas yang diberikan
- Langkah 2: Temukan probabilitas Peluang dengan setiap atribut untuk setiap kelas
- Langkah 3: Masukkan nilai ini dalam Formula Bayes dan hitung probabilitas posterior.
- Langkah 4: Lihat kelas mana yang memiliki probabilitas lebih tinggi, mengingat input milik kelas probabilitas lebih tinggi.
Untuk menyederhanakan perhitungan
probabilitas sebelum dan posterior, Anda dapat menggunakan tabel dua frekuensi
dan kemungkinan. Kedua tabel ini akan membantu Anda menghitung probabilitas
sebelum dan sesudah. Tabel Frekuensi berisi kemunculan label untuk semua fitur.
Ada dua tabel kemungkinan. Kemungkinan Tabel 1 menunjukkan probabilitas label
sebelumnya dan Kemungkinan Tabel 2 menunjukkan probabilitas posterior.
Sekarang anggaplah Anda ingin menghitung
probabilitas bermain ketika cuaca Overcast/mendung.
Kemungkinan bermain:
P (Yes | Overcast) = P (Overcast | Yes)
P (Yes) / P (Overcast) ..................... (1)
1. Hitung Kemungkinan Sebelumnya:
P (Overcast) = 4/14 = 0.29
P (Yes) = 9/14 = 0.64
2. Hitung Kemungkinan Posterior:
P (Overcast | Yes) = 4/9 = 0,44
3. Masukkan probabilitas Prior dan Posterior dalam persamaan (1)
P (Yes | Overcast) = 0.44 * 0.64 / 0.29 = 0.98 (Lebih Tinggi)
1. Hitung Kemungkinan Sebelumnya:
P (Overcast) = 4/14 = 0.29
P (Yes) = 9/14 = 0.64
2. Hitung Kemungkinan Posterior:
P (Overcast | Yes) = 4/9 = 0,44
3. Masukkan probabilitas Prior dan Posterior dalam persamaan (1)
P (Yes | Overcast) = 0.44 * 0.64 / 0.29 = 0.98 (Lebih Tinggi)
Demikian pula, Anda dapat menghitung
probabilitas tidak bermain:
Kemungkinan tidak bermain:
P (No | Overcast) = P (Overcast | No)
P (No) / P (Overcast) ..................... (2)
1. Hitung Kemungkinan Sebelumnya:
P (Overcast) = 4/14 = 0.29
P (No) = 5/14 = 0,36
2. Hitung Kemungkinan Posterior:
P (Overcast | No) = 0/9 = 0
3. Masukkan probabilitas Prior dan Posterior dalam persamaan (2)
P (No | Overcast) = 0 * 0,36 / 0,29 = 0
1. Hitung Kemungkinan Sebelumnya:
P (Overcast) = 4/14 = 0.29
P (No) = 5/14 = 0,36
2. Hitung Kemungkinan Posterior:
P (Overcast | No) = 0/9 = 0
3. Masukkan probabilitas Prior dan Posterior dalam persamaan (2)
P (No | Overcast) = 0 * 0,36 / 0,29 = 0
Probabilitas kelas 'Yes' lebih tinggi.
Jadi Anda dapat menentukan di sini apakah cuaca mendung/overcast membuat pemain
akan berolahraga.
Pendekatan Kedua
(Dalam hal banyak fitur)
Sekarang anggaplah Anda ingin
menghitung probabilitas bermain ketika cuaca Overcast (mendung), dan suhunya Mild
(ringan).
Kemungkinan bermain:
P (Play = Yes | Weather = Overcast,
Temp = Mild) = P (Weather = Overcast, Temp = Mild | Play = Yes) P (Play = Yes)
.......... (1)
P (Weather = Overcast, Temp = Mild | Play = Yes) = P (Overcast | Yes) P (Mild | Yes) ……… (2)
1. Hitung Probabilitas Sebelumnya:
P (Yes) = 9/14 = 0.64
2. Hitung Probabilitas Posterior:
P (Overcast | Yes) = 4/9 = 0,44 P (Mild | Yes) = 4/9 = 0,44
3. Masukkan probabilitas Posterior dalam persamaan (2)
P (Weather = Overcast, Temp = Mild | Play = Yes) = 0,44 * 0,44 = 0,1936 (Lebih Tinggi)
4. Masukkan probabilitas Prior dan Posterior dalam persamaan (1)
P (Play = Yes | Weather = Overcast, Temp = Mild) = 0.1936 * 0.64 = 0.124
Demikian pula, Anda dapat menghitung
probabilitas tidak bermain:
Kemungkinan tidak bermain:
P (Play = No | Weather = Overcast,
Temp = Mild) = P (Weather = Overcast, Temp = Mild | Play = No) P (Play = No)
.......... (3)
P (Weather = Overcast, Temp = Mild | Play = No) = P (Weather = Overcast | Play = No) P (Temp = Mild | Play = No) ……… (4)
1. Hitung Kemungkinan Sebelumnya:
P (Tidak) = 5/14 = 0,36
2. Hitung Probabilitas Posterior:
P (Weather = Overcast | Play = No) = 0/9 = 0 P (Temp = Mild | Play = No) = 2/5 = 0,4
3. Masukkan probabilitas posterior dalam persamaan (4)
P (Weather = Overcast, Temp = Mild | Play = No) = 0 * 0,4 = 0
4. Masukkan probabilitas sebelum dan belakang dalam persamaan (3)
P (Play = No | Weather = Overcast, Temp = Mild) = 0 * 0,36 = 0
Probabilitas kelas 'Yes' lebih tinggi.
Jadi Anda dapat mengatakan di sini bahwa jika cuaca mendung maka pemain akan
bermain olahraga.
Membangun Klasifikasi
dengan Scikit-learn
Naive Bayes Classifier
Pendefinisian Dataset
Dalam contoh ini, Anda bisa menggunakan dataset dummy dengan tiga kolom: weather, temperature, dan play (cuaca, suhu, dan permainan). Dua yang pertama adalah fitur (weather, temperature) dan yang lainnya adalah label.
Fitur Encoding
Pertama, Anda perlu mengubah label
string ini menjadi angka. misalnya: 'Overcast', 'Rainy', 'Sunny' sebagai 0, 1,
2. Ini dikenal sebagai label encoding. Scikit-belajar menyediakan library LabelEncoder untuk pengkodean label dengan nilai
antara 0 dan satu kurang dari jumlah kelas diskrit.
Demikian pula, Anda juga dapat meng-encode
kolom temp dan play.
Sekarang gabungkan kedua fitur (weather dan temp) dalam satu variabel (list tupel).
Sekarang gabungkan kedua fitur (weather dan temp) dalam satu variabel (list tupel).
Pembangkitan Model
Hasilkan model dengan menggunakan
naive bayes classifier dalam langkah-langkah berikut:
- Buat pengklasifikasi naive bayes
- Fit-kan dataset pada classifier
- Lakukan prediksi
Naive Bayes dengan
Banyak Label
Sampai saat ini kita telah belajar
klasifikasi Naif Bayes dengan label biner. Sekarang Anda akan belajar tentang
klasifikasi beberapa kelas di Naive Bayes. Yang dikenal sebagai klasifikasi
multinomial Naive Bayes. Misalnya, jika Anda ingin mengklasifikasikan artikel
berita tentang teknologi, hiburan, politik, atau olahraga.
Pada bagian pembuatan model, Anda dapat menggunakan dataset wine yang merupakan masalah klasifikasi multi-kelas yang sangat terkenal. "Dataset ini adalah hasil analisis kimia dari anggur yang ditanam di wilayah yang sama di Italia tetapi berasal dari tiga kultivar yang berbeda." (UC Irvine)
Dataset terdiri dari 13 fitur (alkohol, malic_acid, abu, alcalinity_of_ash, magnesium, total_phenols, flavanoids, nonflavanoid_phenols, proanthocyanins, color_intensity, hue, od280 / od315_of_diluted_wines, proline) dan jenis kultivar anggur. Data ini memiliki tiga jenis anggur, Class_0, Class_1, dan Class_3. Di sini Anda dapat membangun model untuk mengklasifikasikan jenis anggur.
Dataset tersedia di library scikit-learn dan buatlah projek baru dari sebelumnya.
Loading data
Exploring Data
Anda dapat mencetak nama target dan
fitur, untuk memastikan Anda memiliki dataset yang tepat, seperti:
Sebaiknya eksplorasi sedikit data
Anda, sehingga Anda tahu apa yang sedang Anda kerjakan. Di sini, Anda dapat
melihat lima baris pertama dataset dicetak, serta variabel target untuk seluruh
dataset.
Memisahkan Data
Memisahkan Data
Pertama, Anda memisahkan kolom menjadi
variabel dependen dan independen (atau fitur dan label). Kemudian Anda membagi
variabel-variabel tersebut ke dalam train dan set tes.
Pembuatan Model
Pembuatan Model
Setelah pemisahan, Anda akan
menghasilkan model naïve bayes pada set pelatihan dan melakukan prediksi pada
fitur set tes.
Mengevaluasi Model
Setelah pembuatan model, periksa
akurasi menggunakan nilai aktual dan prediksi.
Tugas:
- Cobalah program di atas, berusahalah untuk menganalisa dan memahaminya
- Carilah studi kasus berbeda yang dapat dipecahkan oleh pemodelan naïve bayes.
- Buat program dan sertai dengan perhitungan manualnya, seperti yang dicontohkan di atas.
- Buat dalam bentuk laporan
Link Download :