Dari StatSoft, Inc. (2013), Electronic Statistics Textbook , "Naive Bayes Classifier" :
Untuk menunjukkan konsep Klasifikasi Naïve Bayes, perhatikan contoh yang ditampilkan dalam ilustrasi di atas. Seperti yang ditunjukkan, objek dapat diklasifikasikan sebagai GREEN atau RED. Tugas saya adalah untuk mengklasifikasikan kasus baru saat mereka tiba, yaitu memutuskan label kelas mana yang mereka miliki, berdasarkan objek yang saat ini keluar.
Karena ada dua kali lebih banyak objek HIJAU daripada RED, masuk akal untuk percaya bahwa kasus baru (yang belum diamati) memiliki kemungkinan dua kali lebih besar untuk memiliki keanggotaan HIJAU daripada RED. Dalam analisis Bayesian, kepercayaan ini dikenal sebagai probabilitas sebelumnya. Probabilitas sebelumnya didasarkan pada pengalaman sebelumnya, dalam hal ini persentase objek HIJAU dan MERAH, dan sering digunakan untuk memprediksi hasil sebelum mereka benar-benar terjadi.
Jadi, kita dapat menulis:
Karena ada total 60 objek, 40 di antaranya adalah GREEN dan 20 RED, probabilitas kami sebelumnya untuk keanggotaan kelas adalah:
Setelah merumuskan probabilitas sebelumnya, kami sekarang siap untuk mengklasifikasikan objek baru (lingkaran PUTIH). Karena objek dikelompokkan dengan baik, masuk akal untuk mengasumsikan bahwa semakin banyak objek HIJAU (atau MERAH) di sekitar X, semakin besar kemungkinan bahwa case baru tersebut memiliki warna tertentu. Untuk mengukur kemungkinan ini, kami menggambar sebuah lingkaran di sekitar X yang mencakup sejumlah (untuk dipilih a priori) 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 Peluang X yang diberikan GREEN lebih kecil dari Peluang X yang diberikan MERAH, karena lingkaran mencakup 1 objek GREEN dan 3 yang MERAH. Jadi:
Meskipun probabilitas sebelumnya menunjukkan bahwa X mungkin milik GREEN (mengingat bahwa ada dua kali lebih banyak GREEN dibandingkan dengan RED), kemungkinan menunjukkan sebaliknya; bahwa keanggotaan kelas X adalah RED (mengingat bahwa ada lebih banyak objek RED di sekitar X daripada GREEN). 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 Pdt. Thomas Bayes 1702-1761).
Akhirnya, kami mengklasifikasikan X sebagai MERAH karena keanggotaan kelasnya mencapai probabilitas posterior terbesar.
Di sinilah kesulitan pemahaman matematika saya masuk
p (Cj | x1, x2, x ..., xd) adalah probabilitas posterior keanggotaan kelas, yaitu probabilitas bahwa X adalah milik Cj tetapi mengapa menuliskannya seperti ini?
Menghitung kemungkinan?
Probabilitas Posterior?
Saya tidak pernah mengambil matematika, tetapi pemahaman saya tentang bayes naif baik-baik saja saya pikir tepat ketika datang ke metode ini membusuk membingungkan saya. Bisakah seseorang membantu memvisualisasikan metode ini dan bagaimana menulis matematika dengan cara yang dapat dimengerti?
Jawaban:
Saya akan menjalankan seluruh proses Naif Bayes dari awal, karena tidak sepenuhnya jelas bagi saya di mana Anda digantung.
Kami ingin menemukan probabilitas bahwa contoh baru milik masing-masing kelas: ). Kami kemudian menghitung probabilitas itu untuk setiap kelas, dan memilih kelas yang paling mungkin. Masalahnya adalah kita biasanya tidak memiliki probabilitas tersebut. Namun, Teorema Bayes memungkinkan kita menulis ulang persamaan itu dalam bentuk yang lebih mudah ditelusur.P(class|feature1,feature2,...,featuren
Bayes 'Thereom hanyalah atau dalam hal masalah kita:P(A|B)=P(B|A)⋅P(A)P(B) P(class|features)=P(features|class)⋅P(class)P(features)
Kami dapat menyederhanakan ini dengan menghapus . Kita dapat melakukan ini karena kita akan memberi peringkat untuk setiap nilai ; akan sama setiap kali - tidak tergantung pada . Ini memberi kitaP(features) P(class|features) class P(features) class P(class|features)∝P(features|class)⋅P(class)
Probabilitas sebelumnya, , dapat dihitung seperti yang Anda jelaskan dalam pertanyaan Anda.P(class)
Itu meninggalkan . Kami ingin menghilangkan probabilitas bersama yang masif, dan mungkin sangat jarang . Jika setiap fitur independen, maka Bahkan jika mereka tidak benar-benar independen, kita dapat mengasumsikan mereka adalah (itulah " naif "bagian dari Bayes naif). Saya pribadi berpikir lebih mudah untuk memikirkan ini untuk variabel diskrit (yaitu, kategori), jadi mari kita gunakan versi contoh Anda yang sedikit berbeda. Di sini, saya telah membagi setiap dimensi fitur menjadi dua variabel kategori.P(features|class) P(feature1,feature2,...,featuren|class) P(feature1,feature2,...,featuren|class)=∏iP(featurei|class)
.
Contoh: Pelatihan sang pengklasifikasi
Untuk melatih pengklasifikasi, kami menghitung berbagai himpunan bagian dari poin dan menggunakannya untuk menghitung probabilitas sebelumnya dan kondisional.
Priornya sepele: Ada enam puluh total poin, empat puluh hijau, dan dua puluh merah. JadiP(class=green)=4060=2/3 and P(class=red)=2060=1/3
Selanjutnya, kita harus menghitung probabilitas bersyarat dari setiap nilai fitur yang diberikan kelas. Di sini, ada dua fitur: dan , yang masing-masing mengambil satu dari dua nilai (A atau B untuk satu, X atau Y untuk yang lain). Karena itu kita perlu mengetahui hal-hal berikut:feature1 feature2
Ini mudah untuk dihitung dengan menghitung dan membagi juga. Misalnya, untuk , kami hanya melihat titik merah dan menghitung berapa banyak dari mereka yang berada di wilayah 'A' untuk . Ada dua puluh titik merah, yang semuanya berada di wilayah 'A', jadi . Tidak ada titik merah di wilayah B, jadi . Selanjutnya, kami melakukan hal yang sama, tetapi hanya mempertimbangkan titik hijau. Ini memberi kita dan . Kami ulangi proses itu untuk , untuk melengkapi tabel probabilitas. Dengan asumsi saya sudah menghitung dengan benar, kami mengertiP(feature1=A|class=red) feature1 P(feature1=A|class=red)=20/20=1 P(feature1|class=red)=0/20=0 P(feature1=A|class=green)=5/40=1/8 P(feature1=B|class=green)=35/40=7/8 feature2
Sepuluh probabilitas (dua prior ditambah delapan kondisional) adalah model kami
Mengklasifikasikan Contoh Baru
Mari kita klasifikasikan titik putih dari contoh Anda. Itu ada di wilayah "A" untuk dan wilayah "Y" untuk . Kami ingin menemukan probabilitas bahwa itu ada di setiap kelas. Mari kita mulai dengan warna merah. Dengan menggunakan rumus di atas, kita tahu bahwa: Subbing dalam probabilitas dari tabel, kita dapatkanfeature1 feature2 P(class=red|example)∝P(class=red)⋅P(feature1=A|class=red)⋅P(feature2=Y|class=red)
Subbing dalam nilai-nilai itu membuat kita 0 ( ). Akhirnya, kita melihat untuk melihat kelas mana yang memberi kita probabilitas tertinggi. Dalam hal ini, itu jelas kelas merah, jadi di situlah kita menetapkan intinya.2/3⋅0⋅2/10
Catatan
Dalam contoh asli Anda, fitur-fiturnya kontinu. Dalam hal ini, Anda perlu menemukan beberapa cara menetapkan P (fitur = nilai | kelas) untuk setiap kelas. Anda mungkin mempertimbangkan untuk menyesuaikan distribusi probabilitas yang diketahui (misalnya, seorang Gaussian). Selama pelatihan, Anda akan menemukan mean dan varians untuk setiap kelas di sepanjang setiap dimensi fitur. Untuk mengklasifikasikan suatu titik, Anda akan menemukan dengan memasukkan mean dan varians yang sesuai untuk setiap kelas. Distribusi lain mungkin lebih tepat, tergantung pada data Anda, tetapi seorang Gaussian akan menjadi titik awal yang baik.P(feature=value|class)
Saya tidak terlalu terbiasa dengan kumpulan data DARPA, tetapi pada dasarnya Anda akan melakukan hal yang sama. Anda mungkin akan berakhir menghitung sesuatu seperti P (serangan = TRUE | service = jari), P (serangan = false | layanan = jari), P (serangan = TRUE | layanan = ftp), dll. Dan kemudian menggabungkannya dalam sama seperti contohnya. Sebagai catatan, bagian dari trik di sini adalah menghadirkan fitur yang bagus. Sumber IP, misalnya, mungkin akan sangat jarang - Anda mungkin hanya memiliki satu atau dua contoh untuk IP yang diberikan. Anda mungkin melakukan jauh lebih baik jika Anda melakukan geolokasi IP dan menggunakan "Source_in_same_building_as_dest (true / false)" atau sesuatu sebagai fitur.
Saya harap itu membantu lebih banyak. Jika ada yang butuh klarifikasi, saya akan senang untuk mencoba lagi!
sumber
Menyederhanakan notasi dengan menunjukkan data, kami ingin mencari yang mana dari berbagai yang terbesar. Sekarang, formula Bayes memberikan mana penyebut di benar sama untuk semua . Jika kita ingin menemukan , adalah yang terbesar, kita tentu saja dapat menghitung setiap dan membandingkan nilainya. Tetapi perhatikan bahwa perbandingan tidak benar-benar dipengaruhi oleh nilai yang sama dalam semua kasus. Kita juga bisa menghitung semuaD P(Cj∣D)
sumber
Asumsi utama di balik model naive bayes adalah bahwa setiap fitur (x_i) tidak tergantung kondisi dari semua fitur lain yang diberikan kelas. Asumsi ini yang memungkinkan kami untuk menulis kemungkinan sebagai produk sederhana (seperti yang telah Anda tunjukkan).
Ini juga yang membantu model naif bayes menggeneralisasi dengan baik dalam praktik. Pertimbangkan fase pelatihan: jika kita tidak membuat asumsi ini, maka pembelajaran akan melibatkan memperkirakan distribusi dimensi yang rumit dan tinggi: p (x1, x2, ..., xn, c) di mana semua fitur didistribusikan bersama. Sebagai gantinya, kita dapat melatih dengan memperkirakan p (x1, c), p (x2, c), ..., p (xn, c), karena dengan mengetahui nilai c membuat nilai-nilai semua fitur lainnya menjadi tidak relevan (mereka menyediakan tidak ada informasi tambahan tentang x_i).
Saya tidak tahu cara yang baik untuk memvisualisasikan ini (selain notasi model grafis standar), tetapi untuk membuatnya lebih konkret Anda dapat menulis beberapa kode untuk mempelajari model Naif bayes ( Anda dapat mengambil beberapa contoh data di sini ). Latih dan uji. Sekarang lepaskan asumsi independensi bersyarat dan ubah kodenya. Latih, uji, dan bandingkan dengan model sebelumnya.
sumber