Naive Bayes
- niko
- 2 juil. 2018
- 1 min de lecture
# -*- coding: utf-8 -*- """ Classifieur NAIVE BAYES """
import numpy as np from pylab import * from sklearn.naive_bayes import GaussianNB from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt # charge un package pour les graphiques
from sklearn.datasets import load_digits digits = load_digits() X, y = digits.data, digits.target
#Séparation de ce jeu de données en un jeu TRAIN (79%) pour l'apprentissage et un jeu TEST (21%) pour la validation. from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.21, random_state=55) classes = list(set(y))
print("Nombre total d'échantillons : n_samples={}".format(X.shape[0])) print("Nombre total de caractéristiques : n_features={}".format(X.shape[1])) print("Classes labels: {} ".format(classes))
print(f"Taille de la partie apprentissage -TRAIN- : {X_train.shape}") print("Taille de la partie de validation -TEST- : {}".format(X_test.shape))
#NAIVE BAYES clf_NB=GaussianNB() clf_NB.fit(X_train,y_train)
print("Naive Bayes accuracy score:{:.2f}%\n".format(accuracy_score(clf_NB.predict(X_test),y_test)*100))
conf_mat = confusion_matrix(y_test, clf_NB.predict(X_test)) error = 100-clf_NB.score(X_test, y_test.ravel())*100
import seaborn as sns """ Affichage de la matrice de confusion """

fig, axs = plt.subplots(ncols=1, figsize=(12, 4)) sns.heatmap(conf_mat, square=True, annot=True) axs.set_title('{}: {}\nerror: {:.2f}'.format("Naive BAYES", "Matrice de confusion", error)) axs.set_ylabel('True label') axs.set_xlabel('Predicted label') show()




Commentaires