Scikit Learn - Phân loại với Naïve Bayes

Các phương pháp Naïve Bayes là một tập hợp các thuật toán học có giám sát dựa trên việc áp dụng định lý Bayes với giả định mạnh mẽ rằng tất cả các yếu tố dự đoán là độc lập với nhau, tức là sự hiện diện của một đối tượng trong một lớp là độc lập với sự hiện diện của bất kỳ đối tượng nào khác trong cùng một lớp học. Đây là giả định ngây thơ đó là lý do tại sao những phương pháp này được gọi là phương pháp Naïve Bayes.

Định lý Bayes phát biểu mối quan hệ sau để tìm xác suất sau của lớp tức là xác suất của một nhãn và một số đặc điểm quan sát được, $ 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) $$

Ở đây, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ là xác suất sau của lớp.

$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ là xác suất trước của lớp.

$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ là khả năng xảy ra là xác suất của bộ dự đoán đã cho.

$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ là xác suất dự đoán trước.

Scikit-learning cung cấp các mô hình phân loại Bayes ngây thơ khác nhau cụ thể là Gaussian, Đa thức, Bổ sung và Bernoulli. Tất cả chúng khác nhau chủ yếu bởi giả định mà chúng đưa ra liên quan đến phân phối của $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ tức là xác suất của lớp dự đoán đã cho.

Sr.No Mô tả về mô hình
1 Gaussian Naïve Bayes

Bộ phân loại Gaussian Naïve Bayes giả định rằng dữ liệu từ mỗi nhãn được lấy từ một phân phối Gaussian đơn giản.

2 Đa thức Naïve Bayes

Nó giả định rằng các tính năng được rút ra từ một phân phối Đa thức đơn giản.

3 Bernoulli Naïve Bayes

Giả định trong mô hình này là các tính năng nhị phân (0 và 1) trong tự nhiên. Một ứng dụng của phân loại Bernoulli Naïve Bayes là Phân loại văn bản với mô hình 'túi từ'

4 Bổ sung Naïve Bayes

Nó được thiết kế để điều chỉnh các giả định nghiêm trọng do bộ phân loại Bayes đa thức đưa ra. Loại bộ phân loại NB này phù hợp với các tập dữ liệu không cân bằng

Xây dựng Naïve Bayes Classifier

Chúng tôi cũng có thể áp dụng trình phân loại Naïve Bayes trên tập dữ liệu Scikit-learning. Trong ví dụ dưới đây, chúng tôi đang áp dụng GaussianNB và điều chỉnh bộ dữ liệu Breast_cancer của Scikit-leran.

Thí dụ

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)

Đầu ra

[
   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
]

Kết quả trên bao gồm một loạt các số 0 và 1 về cơ bản là các giá trị dự đoán từ các lớp khối u là ác tính và lành tính.