top of page

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


A découvrir ...
bottom of page