import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report,confusion_matrix
data = datasets.load_iris()
x,y = data.data,data.target
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.4,random_state=1)
clf = MultinomialNB(alpha=1.0,fit_prior=True,class_prior=None)
clf.fit(x_train,y_train)
print('训练集上预测结果为:\n',classification_report(y_train,clf.predict(x_train)))
trainMatrix = confusion_matrix(y_train,clf.predict(x_train))
dfTrain = pd.DataFrame(trainMatrix)
dfTrain.index.name = 'actual'
dfTrain.columns.name = 'predict'
print(dfTrain)
print('测试集上的预测结果为:\n',classification_report(y_test,clf.predict(x_test),target_names=['a','b','c']))
testMatrix = confusion_matrix(y_test,clf.predict(x_test))
dfTest = pd.DataFrame(testMatrix)
dfTest.index.name = 'actual'
dfTest.columns.name = 'predict'
print(dfTest)