Code

#importing the Libraies
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dataset=pd.read_csv("Social_Network_Ads.csv")

dataset

dataset=pd.get_dummies(dataset,drop_first=True)

dataset

dataset=dataset.drop("User ID",axis=1)

dataset["Purchased"].value_counts()

indep=dataset[["Age","EstimatedSalary","Gender_Male"]]
dep=dataset["Purchased"]

indep.shape

dep

#split into training set and test
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(indep, dep, test_size = 1/3, random_state = 0)

from sklearn.naive_bayes import MultinomialNB
classifier = MultinomialNB()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
from sklearn.metrics import classification_report
clf_report = classification_report(y_test, y_pred)              
print(clf_report)
print(cm)

from sklearn.naive_bayes import BernoulliNB
classifier = BernoulliNB()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
from sklearn.metrics import classification_report
clf_report = classification_report(y_test, y_pred)              
print(clf_report)
print(cm)

from sklearn.naive_bayes import CategoricalNB
classifier =CategoricalNB()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
from sklearn.metrics import classification_report
clf_report = classification_report(y_test, y_pred)              
print(clf_report)
print(cm)

from sklearn.naive_bayes import ComplementNB
classifier =ComplementNB()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
from sklearn.metrics import classification_report
clf_report = classification_report(y_test, y_pred)              
print(clf_report)
print(cm)

Dataset

User Purchase Data

User ID Gender Age Estimated Salary Purchased
15624510 Male 19 19000 0
15810944 Male 35 20000 0
15668575 Female 26 43000 0
15603246 Female 27 57000 0
15804002 Male 19 76000 0
15728773 Male 27 58000 0
15598044 Female 27 84000 0
15694829 Female 32 150000 1
15600575 Male 25 33000 0
15727311 Female 35 65000 0
15570769 Female 26 80000 0
15606274 Female 26 52000 0
15746139 Male 20 86000 0
15704987 Male 32 18000 0
15628972 Male 18 82000 0
15697686 Male 29 80000 0
15733883 Male 47 25000 1
15617482 Male 45 26000 1
15704583 Male 46 28000 1
15621083 Female 48 29000 1
15649487 Male 45 22000 1
15736760 Female 47 49000 1
15714658 Male 48 41000 1
15599081 Female 45 22000 1
15705113 Male 46 23000 1
15631159 Male 47 20000 1
15792818 Male 49 28000 1
15633531 Female 47 30000 1
15744529 Male 29 43000 0
15669656 Male 31 18000 0
15581198 Male 31 74000 0
15729054 Female 27 137000 1
15573452 Female 21 16000 0
15776733 Female 28 44000 0
15724858 Male 27 90000 0
15713144 Male 35 27000 0
15690188 Female 33 28000 0
15689425 Male 30 49000 0
15671766 Female 26 72000 0
15782806 Female 27 31000 0
15764419 Female 27 17000 0
15591915 Female 33 51000 0
15772798 Male 35 108000 0
15792008 Male 30 15000 0
15715541 Female 28 84000 0
15639277 Male 23 20000 0
15798850 Male 25 79000 0
15776348 Female 27 54000 0
15727696 Male 30 135000 1
15793813 Female 31 89000 0
15694395 Female 24 32000 0
15764195 Female 18 44000 0
15744919 Female 29 83000 0
15671655 Female 35 23000 0
15654901 Female 27 58000 0
15649136 Female 24 55000 0
15775562 Female 23 48000 0
15807481 Male 28 79000 0
15642885 Male 22 18000 0
15789109 Female 32 117000 0
15814004 Male 27 20000 0
15673619 Male 25 87000 0
15595135 Female 23 66000 0
15583681 Male 32 120000 1
15605000 Female 59 83000 0
15718071 Male 24 58000 0
15679760 Male 24 19000 0
15654574 Female 23 82000 0
15577178 Female 22 63000 0
15595324 Female 31 68000 0
15756932 Male 25 80000 0
15726358 Female 24 27000 0
15595228 Female 20 23000 0
15782530 Female 33 113000 0
15592877 Male 32 18000 0
15651983 Male 34 112000 1
15746737 Male 18 52000 0
15774179 Female 22 27000 0
15667265 Female 28 87000 0
15655123 Female 26 17000 0
15595917 Male 30 80000 0
15668385 Male 39 42000 0
15709476 Male 20 49000 0
15711218 Male 35 88000 0
15798659 Female 30 62000 0
15663939 Female 31 118000 1
15694946 Male 24 55000 0
15631912 Female 28 85000 0
15768816 Male 26 81000 0
15682268 Male 35 50000 0
15684801 Male 22 81000 0
15636428 Female 30 116000 0
15809823 Male 26 15000 0
15699284 Female 29 28000 0
15786993 Female 29 83000 0
15709441 Female 35 44000 0
15710257 Female 35 25000 0
15582492 Male 28 123000 1
15575694 Male 35 73000 0