Scikit Learn - Klasifikasi dengan Naïve Bayes

Metode Naïve Bayes adalah sekumpulan algoritma pembelajaran yang diawasi berdasarkan penerapan teorema Bayes dengan asumsi kuat bahwa semua prediktor tidak bergantung satu sama lain yaitu keberadaan fitur di kelas tidak bergantung pada keberadaan fitur lain di kelas yang sama. kelas. Asumsi yang naif inilah yang menyebabkan metode ini disebut metode Naïve Bayes.

Teorema Bayes menyatakan hubungan berikut untuk menemukan probabilitas posterior kelas yaitu probabilitas label dan beberapa fitur yang diamati, $P\left(\begin{array}{c} Y\arrowvert features\end{array}\right)$.

$$P\left(\begin{array}{c} Y\arrowvert features\end{array}\right)=\left(\frac{P\lgroup Y\rgroup P\left(\begin{array}{c} features\arrowvert Y\end{array}\right)}{P\left(\begin{array}{c} features\end{array}\right)}\right)$$

Sini, $P\left(\begin{array}{c} Y\arrowvert features\end{array}\right)$ adalah probabilitas posterior kelas.

$P\left(\begin{array}{c} Y\end{array}\right)$ adalah probabilitas kelas sebelumnya.

$P\left(\begin{array}{c} features\arrowvert Y\end{array}\right)$ adalah kemungkinan yang merupakan probabilitas kelas prediktor yang diberikan.

$P\left(\begin{array}{c} features\end{array}\right)$ adalah probabilitas prediktor sebelumnya.

Scikit-learn menyediakan model pengklasifikasi naïve Bayes yang berbeda yaitu Gaussian, Multinomial, Complement dan Bernoulli. Semuanya berbeda terutama oleh asumsi yang mereka buat tentang distribusi$P\left(\begin{array}{c} features\arrowvert Y\end{array}\right)$ yaitu probabilitas kelas prediktor yang diberikan.

Sr Tidak Model & Deskripsi
1 Gaussian Naïve Bayes

Pengklasifikasi Gaussian Naïve Bayes mengasumsikan bahwa data dari setiap label diambil dari distribusi Gaussian sederhana.

2 Multinomial Naïve Bayes

Ini mengasumsikan bahwa fitur diambil dari distribusi Multinomial sederhana.

3 Bernoulli Naïve Bayes

Asumsi dalam model ini adalah bahwa fitur-fitur biner (0s dan 1s) di alam. Aplikasi klasifikasi Bernoulli Naïve Bayes adalah klasifikasi teks dengan model 'bag of words'

4 Lengkapi Naïve Bayes

Ini dirancang untuk memperbaiki asumsi berat yang dibuat oleh pengklasifikasi Multinomial Bayes. Pengklasifikasi NB jenis ini cocok untuk kumpulan data yang tidak seimbang

Membangun Klasifikasi Naïve Bayes

Kita juga bisa menerapkan pengklasifikasi Naïve Bayes pada dataset Scikit-learn. Pada contoh di bawah, kami menerapkan GaussianNB dan menyesuaikan set data breast_cancer dari Scikit-leran.

Contoh

Import Sklearn
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
data = load_breast_cancer()
label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']
   print(label_names)
   print(labels[0])
   print(feature_names[0])
   print(features[0])
train, test, train_labels, test_labels = train_test_split(
   features,labels,test_size = 0.40, random_state = 42
)
from sklearn.naive_bayes import GaussianNB
GNBclf = GaussianNB()
model = GNBclf.fit(train, train_labels)
preds = GNBclf.predict(test)
print(preds)

Keluaran

[
   1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1
   1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 
   1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 
   1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 
   1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 
   0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 
   1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 
   1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 
   1 1 1 1 0 1 0 0 1 1 0 1
]

Output diatas terdiri dari rangkaian 0s dan 1s yang pada dasarnya merupakan nilai prediksi dari kelas tumor yaitu malignant dan benign.