Aprendizaje supervisado
Python
Naive Bayes
Autor/a

Joel Burbano

Fecha de publicación

19 de diciembre de 2023

En este post vamos a utilizar los datos iris para entrenar un modelo de clasificación y ver que tan bien se puede predecir las etiquetas

En este caso para evitarnos particionar el conjunto a “mano” utilizaremos la función train_test_split

Prieramente importamos las librerias necesarias

Código
import numpy as np
import seaborn as sb
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB

luego importamos el conjunto de datos

Código
iris=sb.load_dataset('iris')
X_iris=iris.drop('species',axis=1)
y_iris=iris['species']

Ahora creamos los datos de entrenamiento y validación

Código
Xtrain,Xtest,ytrain,ytest =train_test_split(X_iris,y_iris,random_state=1)

Ahora importamos el modelo que utilizaremos

Código
from sklearn.naive_bayes import GaussianNB

Definimos un nombre

Código
NB=GaussianNB()

ajustamos el modelo

Código
NB.fit(Xtrain,ytrain)
GaussianNB()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.

predecimos la data que no se utilizo para establecer los parámetros del modelo

Código
y_NB=NB.predict(Xtest)

Ahora utilizando la métrica de exactitud (accurancy score) evaluaremos que tan bien predice el modelo que se ha creado

Código
from sklearn.metrics import accuracy_score
Código
accuracy_score(ytest,y_NB)
0.9736842105263158

Vemos que con una exactitud del \(97,4\%\) el modelo implementado puede etiquetar los datos requeridos.