naive Bayesian Classifier

Assuming a set of documents that need to be classified, use the naïve Bayesian Classifier model to perform this task. Built-in Java classes/API can be used to write the program. Calculate the accuracy, precision, and recall for your data set.


import pandas as pd


msg=pd.read_csv('6.csv',names=['message','label']) 

print('Total instances in the dataset:',msg.shape[0])
msg['labelnum']=msg.label.map({'pos':1,'neg':0})
X=msg.message
Y=msg.labelnum

from sklearn.model_selection import train_test_split 
xtrain,xtest,ytrain,ytest=train_test_split(X,Y) 
print('\nDataset is split into Training and Testing samples') 
print('Total training instances :', xtrain.shape[0]) 
print('Total testing instances :', xtest.shape[0])
from sklearn.feature_extraction.text import CountVectorizer 
count_vect = CountVectorizer()
xtrain_dtm = count_vect.fit_transform(xtrain) #Sparse matrix 
xtest_dtm = count_vect.transform(xtest)

from sklearn.naive_bayes import MultinomialNB

clf = MultinomialNB().fit(xtrain_dtm,ytrain) 
predicted = clf.predict(xtest_dtm)
from sklearn import metrics
print('\nAccuracy metrics')
print('Accuracy of the classifer is',metrics.accuracy_score(ytest,predicted))
print('Recall :',metrics.recall_score(ytest,predicted)) 
print('\nPrecison :',metrics.precision_score(ytest,predicted))
print('Confusion matrix',metrics.confusion_matrix(ytest,predicted))


Output->

Total instances in the dataset: 18

Dataset is split into Training and Testing samples
Total training instances : 13
Total testing instances : 5

Accuracy metrics
Accuracy of the classifer is 0.8
Recall : 1.0

Precison : 0.6666666666666666
Confusion matrix [[2 1]
 [0 2]]

Dataset->
I love this sandwich,pos
This is an amazing place,pos
I feel very good about these beers,pos
This is my best work,pos
What an awesome view,pos
I do not like this restaurant,neg
I am tired of this stuff,neg
I can't deal with this,neg
He is my sworn enemy,neg
My boss is horrible,neg
This is an awesome place,pos
I do not like the taste of this juice,neg
I love to dance,pos
I am sick and tired of this place,neg
What a great holiday,pos
That is a bad locality to stay,neg
We will have good fun tomorrow,pos
I went to my enemy's house today,neg

Comments

Popular posts from this blog

How to set image in carousel using flask?

Invalid syntax , perhaps you forgot a comma? Error in Python

How to run PL/SQL Code With Command Line?