Saya merasa sulit untuk memahami proses Naive Bayes, dan saya bertanya-tanya apakah seseorang dapat menjelaskannya dengan proses langkah demi langkah sederhana dalam bahasa Inggris. Saya mengerti dibutuhkan perbandingan berdasarkan waktu yang terjadi sebagai suatu probabilitas, tetapi saya tidak tahu bagaimana data pelatihan terkait dengan dataset yang sebenarnya.
Tolong beri saya penjelasan tentang peran yang dimainkan oleh set pelatihan. Saya memberikan contoh yang sangat sederhana untuk buah-buahan di sini, seperti pisang misalnya
training set---
round-red
round-orange
oblong-yellow
round-red
dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red
algorithm
machine-learning
dataset
classification
naivebayes
Jaggerjack
sumber
sumber
Jawaban:
Pertanyaan Anda seperti yang saya pahami dibagi menjadi dua bagian, bagian pertama adalah Anda membutuhkan pemahaman yang lebih baik tentang pengklasifikasi Naif Bayes & bagian dua menjadi kebingungan seputar set Pelatihan.
Secara umum semua Algoritma Pembelajaran Mesin perlu dilatih untuk tugas belajar yang diawasi seperti klasifikasi, prediksi dll. Atau untuk tugas belajar yang tidak diawasi seperti pengelompokan.
Selama langkah pelatihan, algoritma diajarkan dengan dataset input tertentu (set pelatihan) sehingga nanti kita dapat mengujinya untuk input yang tidak diketahui (yang belum pernah mereka lihat sebelumnya) yang dapat mereka klasifikasikan atau prediksi dll (dalam hal diawasi belajar) berdasarkan pembelajaran mereka. Inilah yang menjadi dasar dari sebagian besar teknik Machine Learning seperti Neural Networks, SVM, Bayesian dll.
Jadi dalam proyek Pembelajaran Mesin umum pada dasarnya Anda harus membagi set input Anda ke Set Pengembangan (Set Pelatihan + Set Tes-Dev) & Set Tes (atau set Evaluasi). Ingat tujuan dasar Anda adalah bahwa sistem Anda mempelajari dan mengklasifikasikan input baru yang belum pernah mereka lihat sebelumnya dalam set Dev atau set tes.
Set tes biasanya memiliki format yang sama dengan set pelatihan. Namun, sangat penting bahwa set tes berbeda dari corpus pelatihan: jika kita hanya menggunakan kembali set pelatihan sebagai set tes, maka model yang hanya menghafal inputnya, tanpa belajar bagaimana menggeneralisasi ke contoh baru, akan menerima menyesatkan nilai yang tinggi.
Secara umum, misalnya, 70% dari data kami dapat digunakan sebagai kasus pelatihan. Juga ingat untuk mempartisi set asli ke dalam set pelatihan dan tes secara acak .
Sekarang saya sampai pada pertanyaan Anda yang lain tentang Naif Bayes.
Untuk menunjukkan konsep Klasifikasi Naïve Bayes, pertimbangkan contoh yang diberikan di bawah ini:
Seperti yang ditunjukkan, objek dapat diklasifikasikan sebagai
GREEN
atauRED
. Tugas kita adalah untuk mengklasifikasikan kasus-kasus baru saat mereka tiba, yaitu memutuskan label kelas mana yang mereka miliki, berdasarkan objek yang ada saat ini.Karena
GREEN
objeknya dua kali lebih banyakRED
, masuk akal untuk percaya bahwa kasus baru (yang belum diamati) memiliki kemungkinan dua kali lipat untuk memiliki keanggotaanGREEN
daripadaRED
. Dalam analisis Bayesian, kepercayaan ini dikenal sebagai probabilitas sebelumnya. Probabilitas sebelumnya didasarkan pada pengalaman sebelumnya, dalam hal ini persentaseGREEN
danRED
objek, dan sering digunakan untuk memprediksi hasil sebelum mereka benar-benar terjadi.Dengan demikian, kita dapat menulis:
Kemungkinan Sebelumnya
GREEN
:number of GREEN objects / total number of objects
Kemungkinan Sebelumnya
RED
:number of RED objects / total number of objects
Karena ada total
60
objek,40
di antaranya adalahGREEN
dan 20RED
, probabilitas kami sebelumnya untuk keanggotaan kelas adalah:Kemungkinan Sebelumnya untuk
GREEN
:40 / 60
Kemungkinan Sebelumnya untuk
RED
:20 / 60
Setelah merumuskan probabilitas sebelumnya, kami sekarang siap untuk mengklasifikasikan objek baru (
WHITE
lingkaran dalam diagram di bawah). Karena objek dikelompokkan dengan baik, masuk akal untuk mengasumsikan bahwa semakin banyakGREEN
(atauRED
) objek di sekitar X, semakin besar kemungkinan bahwa case baru tersebut memiliki warna tertentu. Untuk mengukur kemungkinan ini, kita menggambar sebuah lingkaran di sekitar X yang mencakup sejumlah (untuk dipilih secara apriori) dari poin terlepas dari label kelas mereka. Kemudian kami menghitung jumlah titik dalam lingkaran milik masing-masing label kelas. Dari ini kami menghitung kemungkinan:Dari ilustrasi di atas, jelas bahwa kemungkinan
X
diberikanGREEN
lebih kecil daripada kemungkinanX
diberikanRED
, karena lingkaran mencakup1
GREEN
objek dan3
RED
yang. Jadi:Meskipun probabilitas sebelumnya menunjukkan bahwa
X
mungkin milikGREEN
(mengingat bahwa ada dua kali lebih banyakGREEN
dibandingkan denganRED
) kemungkinan menunjukkan sebaliknya; bahwa keanggotaan kelasX
adalahRED
(mengingat bahwa ada lebih banyakRED
objek di sekitarX
daripadaGREEN
). Dalam analisis Bayesian, klasifikasi akhir dihasilkan dengan menggabungkan kedua sumber informasi, yaitu, sebelum dan kemungkinan, untuk membentuk probabilitas posterior menggunakan apa yang disebut aturan Bayes (dinamai menurut Pendeta Thomas Bayes 1702-1761).Akhirnya, kami mengklasifikasikan X
RED
karena keanggotaan kelasnya mencapai probabilitas posterior terbesar.sumber
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.
Kita dapat menghitung hal yang sama persis, dengan cara sebaliknya:
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:
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 .
Banyak orang memilih untuk mengingat ini sebagai:
Perhatikan beberapa hal tentang persamaan ini:
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 memilikiclass 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:
Ini adalah 'set pelatihan' kami. Kami akan menggunakan ini untuk memprediksi jenis buah baru yang kami temui.
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 kita
base rates.
Kemungkinan "Bukti"
Probabilitas "Kemungkinan"
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):
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.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.
sumber
Ram Narasimhan menjelaskan konsep dengan sangat baik di sini di bawah ini adalah penjelasan alternatif melalui contoh kode Naif Bayes dalam aksi.
Ini menggunakan contoh masalah dari buku ini di halaman 351.
Ini adalah kumpulan data yang akan kita gunakan dalam dataset di atas jika kita memberikan hipotesis = lalu berapa probabilitas bahwa dia akan membeli atau tidak akan membeli komputer. Kode di bawah ini persis menjawab pertanyaan itu. Cukup buat file bernama bernama dan rekatkan konten berikut.
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}
new_dataset.csv
Berikut adalah kode yang menjelaskan komentar semua yang kami lakukan di sini! [python]
keluaran:
Semoga ini membantu dalam memahami masalah dengan lebih baik
perdamaian
sumber
Naif Bayes: Naif Bayes berada di bawah pengawasan pembelajaran mesin yang digunakan untuk membuat klasifikasi set data. Ini digunakan untuk memprediksi sesuatu berdasarkan pengetahuan sebelumnya dan asumsi independensi.
Mereka menyebutnya naif karena anggapannya (asumsi bahwa semua fitur dalam dataset sama pentingnya dan independen) benar-benar optimis dan jarang benar di sebagian besar aplikasi dunia nyata.
Ini adalah algoritma klasifikasi yang membuat keputusan untuk kumpulan data yang tidak diketahui. Ini didasarkan pada Bayes Theorem yang menggambarkan probabilitas suatu peristiwa berdasarkan pengetahuan sebelumnya.
Diagram di bawah ini menunjukkan cara kerja Bayes naif
Formula untuk memprediksi NB:
Bagaimana cara menggunakan Algoritma Naive Bayes?
Mari kita ambil contoh bagaimana NB wajan
Langkah 1: Pertama kita temukan kemungkinan tabel yang menunjukkan kemungkinan ya atau tidak dalam diagram di bawah ini. Langkah 2: Temukan probabilitas posterior setiap kelas.
Untuk referensi lebih lanjut lihat blog ini .
Lihat GitHub Repository Naif-Bayes-Contoh
sumber
Saya mencoba menjelaskan aturan Bayes dengan sebuah contoh.
Apa peluang bahwa orang yang dipilih secara acak dari masyarakat adalah perokok?
Anda dapat membalas 10%.
Sekarang, bagaimana jika orang itu adalah seorang pria dan berusia 15 tahun?
Tidak mungkin 60%, sementara kita tahu bahwa persentase perokok sangat rendah. Tidak bisa juga kurang dari 10%. 15 atau 20% adalah tebakan yang lebih baik.
Faktanya, kami mencoba memperbarui tebakan awal dengan bukti baru (
P(smoker) vs. P(smoker | evidence)
). Aturan Bayes adalah cara untuk menghubungkan dua probabilitas ini.Setiap bukti dapat menambah atau mengurangi peluang ini. Sebagai contoh, fakta bahwa ia adalah laki-laki dapat meningkatkan peluang, asalkan persentase (menjadi laki-laki) di antara yang bukan perokok lebih rendah. Dengan kata lain, menjadi seorang pria harus menjadi indikator yang baik untuk menjadi perokok daripada bukan perokok.
Kami dapat menunjukkan kontribusi ini dengan cara lain juga. Untuk setiap fitur, Anda dapat membandingkan kesamaan (probabilitas) fitur tersebut di bawah kondisi yang diberikan dengan kesamaannya saja. (
P(f | x) vs. P(f))
.Sebagai contoh, jika kita tahu bahwa 90% perokok adalah laki-laki, itu masih belum cukup untuk mengatakan apakah menjadi laki-laki merupakan indikator menjadi perokok atau tidak. Misalnya jika probabilitas menjadi laki-laki di masyarakat juga 90%, maka mengetahui bahwa seseorang adalah laki-laki tidak membantu kita
((90% / 90%) = 1
. Tetapi jika pria berkontribusi pada 40% masyarakat, tetapi 90% perokok, maka mengetahui bahwa seseorang adalah pria meningkatkan kemungkinan menjadi perokok.(90% / 40%) = 2.25
, jadi itu meningkatkan tebakan awal (10%) sebesar 2,25 menghasilkan 22,5%.Namun, jika probabilitas menjadi laki-laki adalah 95% di masyarakat, maka terlepas dari kenyataan bahwa persentase pria di antara perokok tinggi (90%)! bukti bahwa seseorang adalah seorang pria mengurangi kemungkinan dia menjadi perokok!
(90% / 95%) = 0.95)
.Jadi kita punya:
Perhatikan bahwa dalam rumus ini kita mengasumsikan bahwa menjadi laki-laki dan di bawah 20 adalah fitur independen sehingga kami mengalikannya, itu berarti mengetahui bahwa seseorang di bawah 20 tidak memiliki pengaruh pada menebak bahwa ia adalah laki-laki atau perempuan. Tapi itu mungkin tidak benar, misalnya mungkin sebagian besar remaja dalam masyarakat adalah laki-laki ...
Untuk menggunakan rumus ini di classifier
Pengklasifikasi diberikan dengan beberapa fitur (menjadi seorang pria dan berusia di bawah 20) dan harus memutuskan apakah dia seorang perokok atau tidak (ini adalah dua kelas). Ia menggunakan rumus di atas untuk menghitung probabilitas setiap kelas di bawah bukti (fitur), dan itu menetapkan kelas dengan probabilitas tertinggi untuk input. Untuk memberikan probabilitas yang diperlukan (90%, 10%, 80% ...) ia menggunakan set pelatihan. Sebagai contoh, ini menghitung orang-orang dalam rangkaian pelatihan yang merupakan perokok dan mendapati mereka berkontribusi 10% dari sampel. Kemudian untuk perokok memeriksa berapa banyak dari mereka adalah laki-laki atau perempuan .... berapa banyak di atas 20 atau di bawah 20 .... Dengan kata lain, ia mencoba untuk membangun distribusi probabilitas fitur untuk setiap kelas berdasarkan pelatihan data.
sumber