Wednesday, April 29, 2020

Klasifikasi Naive Bayes


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)

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

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).

Pembangkitan Model
Hasilkan model dengan menggunakan naive bayes classifier dalam langkah-langkah berikut:

  • Buat pengklasifikasi naive bayes
  • Fit-kan dataset pada classifier
  • Lakukan prediksi


Di sini, 1 menunjukkan bahwa pemain dapat 'bermain'.

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
Pertama mari kita muat dataset wine yang diperlukan dari dataset scikit-learn.

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
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
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:
  1. Cobalah program di atas, berusahalah untuk menganalisa dan memahaminya
  2. Carilah studi kasus berbeda yang dapat dipecahkan oleh pemodelan naïve bayes.
  3. Buat program dan sertai dengan perhitungan manualnya, seperti yang dicontohkan di atas.
  4. Buat dalam bentuk laporan

Link Download :

, ,

No comments:

Post a Comment