In [25]:
#importing libraries
import numpy as np
import pandas as pd
from sklearn.naive_bayes import BernoulliNB, GaussianNB
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import LabelEncoder
import warnings 
warnings.simplefilter('ignore')

In [26]:
dataframe=pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/chess/king-rook-vs-king-pawn/kr-vs-kp.data')
dataframe.shape


Out[26]:
(3195, 37)

In [34]:
headers = [x for x in range(0,37)]
dataframe.columns=headers

In [35]:
dataframe.sample(5)


Out[35]:
0 1 2 3 4 5 6 7 8 9 ... 27 28 29 30 31 32 33 34 35 36
985 0 0 0 0 0 1 0 0 0 0 ... 0 0 0 0 0 1 1 1 0 0
1141 0 0 0 0 0 1 0 0 0 0 ... 0 0 0 0 0 1 1 1 0 0
1844 1 0 0 0 1 1 1 1 1 0 ... 0 0 0 0 0 0 0 1 0 1
749 0 0 0 0 1 1 1 0 0 0 ... 0 0 0 0 0 0 0 1 0 1
1061 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 1 0 0 0

5 rows × 37 columns


In [36]:
encoder=LabelEncoder()
for x in dataframe:
    dataframe[x]=encoder.fit_transform(dataframe[x])

In [37]:
dataframe.sample(5)


Out[37]:
0 1 2 3 4 5 6 7 8 9 ... 27 28 29 30 31 32 33 34 35 36
2596 0 0 0 0 1 1 0 1 1 1 ... 0 0 0 1 0 1 0 0 0 0
1839 0 0 0 1 0 1 1 1 1 0 ... 0 0 0 0 0 0 1 1 0 1
2195 0 1 0 1 0 0 0 0 1 0 ... 0 0 0 1 1 0 0 0 0 1
2572 0 0 0 0 1 1 1 0 0 1 ... 0 0 0 0 0 1 1 0 0 0
1715 0 0 0 0 0 0 0 0 1 0 ... 0 0 0 1 0 0 0 1 0 1

5 rows × 37 columns


In [38]:
features=dataframe.columns[:-1]
target=dataframe.columns[-1]

In [44]:
train,test=train_test_split(dataframe,test_size=0.4)

In [45]:
gnb= BernoulliNB()
gnb=gnb.fit(train[features],train[target])
predict=gnb.predict(test[features])
accu=accuracy_score(test[target],predict)*100
accu


Out[45]:
86.150234741784033

In [46]:
gnb=GaussianNB()
gnb=gnb.fit(train[features],train[target])
gaupredict=gnb.predict(test[features])
gauaccu=accuracy_score(test[target],gaupredict)*100
gauaccu


Out[46]:
61.424100156494518

In [ ]: