Iris Naiye Bayes

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Iris_Naiye_Bayes

February 22, 2021

1 Clasificación utilizando Naive Bayes


[1]: # Importar librerias
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import pandas as pd

[2]: # Importar los datos


dataset = pd.read_csv('iris.csv')

[3]: #miramos los primeros 5 datos


dataset.head()

[3]: sepal_length sepal_width petal_length petal_width species


0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa

[3]: %matplotlib inline


img=mpimg.imread('tipos_iris.jpg')
plt.figure(figsize=(20,40))
plt.axis('off')
plt.imshow(img)

[3]: <matplotlib.image.AxesImage at 0x7feec7e7c370>

1
Separamos el conjunto de datos en variables dependientes e independientes
[4]: X = dataset.iloc[:,:4].values
y = dataset['species'].values

Separamos el conjunto de datos en un conjunto de entrenamiento y otro de prueba


[5]: from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20,␣
,→random_state = 82)

Estandarizamos los datos para que se encuentren en la misma escala


[6]: from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

Ajustamos el clasificador Naive Bayes a los datos de entrenamiento asumiendo Gaussianidad


[7]: from sklearn.naive_bayes import GaussianNB
nvclassifier = GaussianNB()
nvclassifier.fit(X_train, y_train)

[7]: GaussianNB()

Predecimos los datos de prueba


[8]: y_pred = nvclassifier.predict(X_test)
print(y_pred)

['virginica' 'virginica' 'setosa' 'setosa' 'setosa' 'virginica'


'versicolor' 'versicolor' 'versicolor' 'versicolor' 'versicolor'
'virginica' 'setosa' 'setosa' 'setosa' 'setosa' 'virginica' 'versicolor'

2
'setosa' 'versicolor' 'setosa' 'virginica' 'setosa' 'virginica'
'virginica' 'versicolor' 'virginica' 'setosa' 'virginica' 'versicolor']
Veamos las verdaderas etiquetas y los valores que se predijeron.
Los datos verdaderos están en la izquierda y los que se predijeron están en la derecha, luego
imprimimos los primeros 5:
[9]: y_compare = np.vstack((y_test,y_pred)).T
y_compare[:5,:]

[9]: array([['virginica', 'virginica'],


['virginica', 'virginica'],
['setosa', 'setosa'],
['setosa', 'setosa'],
['setosa', 'setosa']], dtype=object)

Hacemos la matriz de confusión


[10]: from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print(cm)

[[11 0 0]
[ 0 8 1]
[ 0 1 9]]
Podemos encontrar la precisión desde la matriz de confusión
[11]: a = cm.shape
corrPred = 0
falsePred = 0

for row in range(a[0]):


for c in range(a[1]):
if row == c:
corrPred +=cm[row,c]
else:
falsePred += cm[row,c]
print('Predicciones correctas: ', corrPred)
print('Predicciones falsas', falsePred)
print ('\n\nPrecisión en la clasificación de tipo Naive Bayes Gaussiana: ',␣
,→corrPred/(cm.sum()))

Predicciones correctas: 28
Predicciones falsas 2

Precisión en la clasificación de tipo Naive Bayes Gaussiana: 0.9333333333333333

3
[ ]:

También podría gustarte