Pertanyaan Mencampur data categorial dan kontinu dalam penggolongan Naive Bayes menggunakan scikit-learn


Saya menggunakan scikit-learn di Python untuk mengembangkan algoritma klasifikasi untuk memprediksi jenis kelamin pelanggan tertentu. Di antara yang lain, saya ingin menggunakan penggolongan Naive Bayes tapi masalah saya adalah bahwa saya memiliki campuran data kategori (mis: "Terdaftar secara online", "Menerima pemberitahuan email" dll) dan data berkelanjutan (mis: "Usia", "Panjang keanggotaan "dll). Saya belum pernah menggunakan scikit sebelumnya, tetapi saya menganggap bahwa Gaussian Naive Bayes cocok untuk data berkelanjutan dan Bernoulli Naive Bayes dapat digunakan untuk data kategori. Namun, karena saya ingin memilikinya kedua data kategori dan berkelanjutan dalam model saya, saya tidak benar-benar tahu bagaimana menangani ini. Setiap ide akan sangat dihargai!


32
2018-01-10 09:08


asal


Jawaban:


Anda memiliki setidaknya dua opsi:

  • Ubah semua data Anda menjadi representasi kategorikal dengan menghitung persentil untuk setiap variabel kontinyu dan kemudian bining variabel kontinu menggunakan persentil sebagai batas bin. Misalnya untuk ketinggian seseorang membuat tempat sampah berikut: "sangat kecil", "kecil", "biasa", "besar", "sangat besar" memastikan bahwa setiap nampan berisi sekitar 20% dari populasi set pelatihan Anda. Kami tidak memiliki utilitas apa pun untuk melakukan hal ini secara otomatis dalam scikit-learn, tetapi seharusnya tidak terlalu rumit untuk melakukannya sendiri. Kemudian cocokkan NB multinomial unik pada representasi kategorikal dari data Anda.

  • Mandiri cocok dengan model NB gaussian pada bagian data kontinu dan model NB multinomial pada bagian kategoris. Kemudian ubah semua dataset dengan mengambil probabilitas tugas kelas (dengan predict_proba metode) sebagai fitur baru: np.hstack((multinomial_probas, gaussian_probas)) dan kemudian mereparasi model baru (misalnya, gaussian NB baru) pada fitur baru.


35
2018-01-10 10:07



Jawaban sederhana: hasil kalikan !! itu sama.

Naive Bayes berdasarkan penerapan teorema Bayes dengan asumsi "naif" kemerdekaan antara setiap pasangan fitur - yang berarti Anda menghitung probabilitas Bayes bergantung pada fitur tertentu tanpa menahan yang lain - yang berarti bahwa algoritma mengalikan setiap probabilitas dari satu fitur dengan probabilitas dari fitur kedua (dan kami benar-benar mengabaikan penyebut - karena itu hanya penormalisasi).

jadi jawaban yang benar adalah:

  1. menghitung probabilitas dari variabel kategori.
  2. menghitung probabilitas dari variabel kontinyu.
  3. kalikan 1. dan 2.

5
2017-12-02 06:28