Saya menyadari bahwa ini adalah pertanyaan lama, dengan jawaban yang pasti. Alasan saya memposting adalah bahwa jawaban yang diterima memiliki banyak elemen k-NN ( k tetangga Nearest), algoritma yang berbeda.
Baik k-NN dan NaiveBayes adalah algoritma klasifikasi. Secara konseptual, k-NN menggunakan ide "kedekatan" untuk mengklasifikasikan entitas baru. Dalam k-NN 'kedekatan' dimodelkan dengan ide-ide seperti Euclidean Distance atau Cosine Distance. Sebaliknya, di NaiveBayes, konsep 'probabilitas' digunakan untuk mengklasifikasikan entitas baru.
Karena pertanyaannya adalah tentang Naif Bayes, inilah cara saya menggambarkan ide dan langkah kepada seseorang. Saya akan mencoba melakukannya dengan sesedikit mungkin persamaan dan dalam bahasa Inggris.
Pertama, Kemungkinan Bersyarat & Aturan Bayes
Sebelum seseorang dapat memahami dan menghargai nuansa Naif Bayes ', mereka perlu mengetahui beberapa konsep terkait terlebih dahulu, yaitu, gagasan Kemungkinan Bersyarat, dan Aturan Bayes. (Jika Anda terbiasa dengan konsep-konsep ini, lewati ke bagian berjudul Getting to Naive Bayes ' )
Probabilitas Bersyarat dalam Bahasa Inggris: Apa probabilitas bahwa sesuatu akan terjadi, mengingat sesuatu yang lain telah terjadi.
Katakanlah ada beberapa Hasil O. Dan beberapa Bukti E. Dari cara probabilitas ini didefinisikan: Kemungkinan memiliki keduanya yang Hasil O dan Bukti E adalah: (Probabilitas O terjadi) dikalikan dengan (Prob dari E mengingat bahwa O terjadi)
Satu Contoh untuk memahami Probabilitas Bersyarat:
Katakanlah kita memiliki koleksi Senator AS. Senator bisa jadi Demokrat atau Republik. Mereka juga laki-laki atau perempuan.
Jika kita memilih satu senator sepenuhnya secara acak, berapa probabilitas bahwa orang ini adalah seorang Demokrat perempuan? Probabilitas Bersyarat dapat membantu kami menjawabnya.
Probabilitas (Demokrat dan Senator Wanita) = Prob (Senator adalah Demokrat) dikalikan dengan Probabilitas Bersyarat Menjadi Wanita mengingat mereka adalah seorang Demokrat.
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
Kita dapat menghitung hal yang sama persis, dengan cara sebaliknya:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
Memahami Aturan Bayes
Secara konseptual, ini adalah cara untuk beralih dari P (Bukti | Hasil yang Diketahui) ke P (Hasil | Bukti yang Diketahui). Seringkali, kita tahu seberapa sering beberapa bukti tertentu diamati, memberikan hasil yang diketahui . Kita harus menggunakan fakta yang diketahui ini untuk menghitung kebalikannya, untuk menghitung kemungkinan hasil itu terjadi , mengingat buktinya.
P (Hasil diberikan bahwa kita tahu beberapa Bukti) = P (Bukti diberikan bahwa kita tahu Hasil) kali Prob (Hasil), diskalakan oleh P (Bukti)
Contoh klasik untuk memahami Aturan Bayes:
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
Sekarang, semua ini hanya basa-basi, untuk sampai ke Naif Bayes.
Mendapatkan ke Naif Bayes '
Sejauh ini, kami hanya berbicara tentang satu bukti. Pada kenyataannya, kita harus memprediksi hasil yang diberikan banyak bukti. Dalam hal ini, matematika menjadi sangat rumit. Untuk mengatasi kerumitan itu, satu pendekatan adalah 'membuka-bongkar' beberapa bukti, dan memperlakukan setiap bukti sebagai independen. Pendekatan ini adalah mengapa ini disebut Bayes naif .
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
Banyak orang memilih untuk mengingat ini sebagai:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
Perhatikan beberapa hal tentang persamaan ini:
- Jika Prob (bukti | hasil) adalah 1, maka kita hanya mengalikan dengan 1.
- Jika Prob (beberapa bukti | hasil tertentu) adalah 0, maka keseluruhan prob. menjadi 0. Jika Anda melihat bukti yang bertentangan, kita dapat mengesampingkan hasil itu.
- Karena kita membagi semuanya dengan P (Bukti), kita bahkan bisa pergi tanpa menghitungnya.
- Intuisi di balik mengalikan dengan yang sebelumnya adalah sehingga kami memberikan probabilitas tinggi untuk hasil yang lebih umum, dan probabilitas rendah untuk hasil yang tidak mungkin. Ini juga disebut
base rates
dan mereka adalah cara untuk mengukur probabilitas yang diprediksi kami.
Bagaimana Cara Mendaftar NaiveBayes untuk Memprediksi Hasil?
Cukup jalankan formula di atas untuk setiap hasil yang mungkin. Karena kami mencoba untuk mengklasifikasikan , setiap hasil disebut a class
dan memiliki class label.
tugas Kami adalah untuk melihat bukti, untuk mempertimbangkan seberapa besar kemungkinannya menjadi kelas ini atau kelas itu, dan menetapkan label untuk setiap entitas. Sekali lagi, kami mengambil pendekatan yang sangat sederhana: Kelas yang memiliki probabilitas tertinggi dinyatakan sebagai "pemenang" dan label kelas ditugaskan untuk kombinasi bukti tersebut.
Contoh Buah
Mari kita coba contoh untuk meningkatkan pemahaman kita: OP meminta contoh identifikasi 'buah'.
Katakanlah kita memiliki data 1000 buah. Mereka kebetulan Pisang , Jeruk atau Buah Lainnya . Kami tahu 3 karakteristik tentang masing-masing buah:
- Apakah itu Panjang
- Apakah itu Manis dan
- Jika warnanya Kuning.
Ini adalah 'set pelatihan' kami. Kami akan menggunakan ini untuk memprediksi jenis buah baru yang kami temui.
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
Kami dapat melakukan pre-compute banyak hal tentang koleksi buah kami.
Probabilitas yang disebut "Sebelum". (Jika kita tidak tahu atribut buah apa pun, ini akan menjadi dugaan kita.) Ini adalah milik kitabase rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
Kemungkinan "Bukti"
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
Probabilitas "Kemungkinan"
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
Diberikan Buah, bagaimana mengklasifikasikannya?
Katakanlah kita diberi properti dari buah yang tidak dikenal, dan diminta untuk mengklasifikasikannya. Kita diberitahu bahwa buahnya Panjang, Manis dan Kuning. Apakah itu Pisang? Apakah itu Orange? Atau itu Buah Lainnya?
Kita cukup menjalankan angka untuk masing-masing 3 hasil, satu per satu. Kemudian kita memilih probabilitas tertinggi dan 'mengklasifikasikan' buah tidak dikenal kita sebagai milik kelas yang memiliki probabilitas tertinggi berdasarkan bukti sebelumnya (set pelatihan 1.000 buah):
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
Dengan margin yang luar biasa (0.252 >> 0.01875
), kami mengklasifikasikan buah Manis / Panjang / Kuning ini sebagai Pisang.
Mengapa Bayes Classifier sangat populer?
Lihatlah apa yang akhirnya terjadi. Hanya menghitung dan mengalikan. Kami dapat melakukan pra-komputasi semua istilah ini, sehingga klasifikasi menjadi mudah, cepat dan efisien.
Let z = 1 / P(evidence).
Sekarang kita dengan cepat menghitung tiga jumlah berikut.
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
Tetapkan label kelas mana yang merupakan angka tertinggi, dan Anda selesai.
Meskipun namanya, Naif Bayes ternyata sangat baik dalam aplikasi tertentu. Klasifikasi teks adalah salah satu area di mana itu benar-benar bersinar.
Harapan yang membantu dalam memahami konsep di balik algoritma Naive Bayes.