Clasificación de Números Escritos a Mano con Regresión Logística
Modelo de Clasificación de Números Escritos a Mano
El objetivo de este modelo es clasificar o predecir el tipo de número que se ha escrito a mano. Para lograr esto, realizaremos una regresión logística. Las variables independientes son los números escritos a mano, que se transforman en matrices para facilitar su comprensión matemática. La variable dependiente, por otro lado, son los objetivos (o ‘targets’), es decir, sus equivalentes numéricos digitales.
En resumen, este modelo busca establecer una correlación entre los números escritos a mano y sus correspondientes representaciones digitales. Con suficientes datos y un entrenamiento adecuado, el modelo debería ser capaz de predecir con precisión el número digital correspondiente a un número escrito a mano
1# Librerías necesarias
2from sklearn.datasets import load_digits # Cargar datos que vamos a usar o sea nuestros datos del modelo, los cuales son matrices, interpretan imágenes
3import pandas as pd
4import matplotlib.pyplot as plt
5import seaborn as sns
6import numpy as np
7from sklearn.linear_model import LogisticRegression # Para realizar nuestra regresión logística
8from sklearn.model_selection import train_test_split # Para separar los datos en entrenamiento y testing (Totalmente necesario)
9
10# Cargamos nuestros datos
11digits = load_digits()
12
13# Checamos cómo se comportan nuestros datos
14img = np.reshape(digits.data[1], (8, 8))
15
16# Vemos el número al que está asociado
17print(digits.target[1])
18
19# Visualizamos la imagen
20plt.imshow(img)
1# Separamos nuestros datos en independiente y dependiente
2x = digits.data
3y = digits.target
4
5# Separamos los datos
6x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)
7
8# Creamos y guardamos el modelo en una variable
9modeloLogistico = LogisticRegression()
10
11# Corremos y entrenamos el modelo con los datos de entrenamiento
12modeloLogistico.fit(x_train, y_train)
13
14# Creamos una predicción para una eventual evaluación (Con los datos de prueba)
15predction = modeloLogistico.predict(x_test)
1# Importamos la función de matriz de confusión, la cual nos ayuda a determinar cuántos se predijeron correctamente y cuántos no
2from sklearn.metrics import confusion_matrix
3
4# Creamos la matriz con los datos de test originales y los de la predicción del modelo
5cm = confusion_matrix(y_test, predction)
6
7# Esta matriz es de 10x10 porque estamos analizando 10 clases de números del 0 al 9 (10 clases)
8# Lo que nos dice es cuántas clases se clasificaron dentro de su clase preestablecida
9print(cm)
10
11# Graficamos para una mejor comprensión
12sns.heatmap(cm, annot = True, linewidths=1.5)
13plt.ylabel('Actual label')
14plt.xlabel('Predict label')
Explora el Proyecto
Contenido Relacionado
¿Qué es la visión artificial?
Computer Vision es un campo de la informática que se centra en permitir que los equipos identifiquen y comprendan objetos y personas en imágenes y vídeos.
REGRESIÓN LOGÍSTICA. CURSO COMPLETO
Curso completo de regresión logística binaria y multinomial en SPSS. Todos los análisis y la forma de realizarlo, interpretarlo y reportarlo en tu informe de investigación.
Comentarios
Cargando comentarios...