¿Cómo utilizar la regresión logística para la clasificación de imágenes?

Estás leyendo la publicación: ¿Cómo utilizar la regresión logística para la clasificación de imágenes?

La clasificación de imágenes es un proceso de clasificación de varias categorías de imágenes en sus etiquetas o categorías apropiadas con las que está asociado. La clasificación de imágenes se emplea principalmente con redes neuronales convolucionales (CNN), pero este artículo es un intento de mostrar que incluso la regresión logística tiene la capacidad de clasificar imágenes de manera eficiente con una reducción en el tiempo computacional y también para evitar la tediosa tarea de construir modelos complejos. para la clasificación de imágenes.

Tabla de contenido

  1. Una descripción general de la regresión logística
  2. Estudio de caso de clasificación de imágenes con regresión logística
  3. Resumen

Una descripción general de la regresión logística

La regresión logística es uno de los algoritmos de aprendizaje automático supervisado que se emplearía principalmente para problemas de clasificación de clases binarias donde, de acuerdo con la ocurrencia de una categoría particular de datos, los resultados son fijos. La regresión logística opera básicamente a través de una función sigmoidal para valores que oscilan entre 0 y 1.

Estudio de caso de clasificación de imágenes con regresión logística

Como se mencionó anteriormente, ya que este artículo enfatiza el uso de la regresión logística para la clasificación de imágenes, estamos utilizando el conjunto de datos de clasificación de dígitos de señas de manos con dos categorías de imágenes que muestran señas de manos de 0 y 1.

Se utilizó un conjunto de datos de formato numpy para este artículo, por lo que el conjunto de datos de entrada y salida se cargaron en el entorno de trabajo de manera adecuada, como se muestra a continuación, y la razón principal para usar los datos de formato numpy es para facilitar el cálculo, ya que el procesamiento de datos numpy es más rápido en comparación con otros tipos de datos. A continuación se muestran los pasos a seguir para cargar datos numpy en el entorno de trabajo.

🔥 Recomendado:  ¿Construyendo modelos robustos con programadores de tasa de aprendizaje en PyTorch?

inp_df=np.load(‘/content/drive/MyDrive/Colab notebooks/Image classificatiob usando LOGREG/inp.npy’) out_df=np.load(‘/content/drive/MyDrive/Colab notebooks/Image classificatiob usando LOGREG/op .npy’)

Una vez que se cargó el conjunto de datos en el entorno de trabajo, se determinó la forma de los datos numpy para estimar el número de filas y columnas presentes en los datos y se vio que hay 410 imágenes de tamaño (64,64) en los datos de entrada utilizados y hay 410 imágenes en los datos de salida. La forma de los datos se puede calcular como se muestra a continuación.

print(‘Forma del marco de datos de entrada’,inp_df.shape) print(‘Forma del marco de datos de salida’,out_df.shape)

La salida del comando de forma será como se muestra a continuación.

Una vez que el conjunto de datos se cargó en el entorno de trabajo, se dividió para el entrenamiento y la prueba con una proporción de división de 80:20 respectivamente utilizando el módulo de selección de modelo scikit-learn como se muestra a continuación.

from sklearn.model_selection import train_test_split X_train,X_test,Y_train,Y_test=train_test_split(inp_df,out_df,test_size=0.2,random_state=42)

Es una mejor práctica mencionar un valor aleatorio para el parámetro random_state mientras se dividen los datos para garantizar mezclas uniformes de datos para entrenamiento y prueba. Más tarde, los datos divididos se usaron para visualizar los datos presentes en la fase de entrenamiento y prueba usando subparcelas para validar la división entre la entrada y la salida, como se muestra a continuación.

plt.figure(figsize=(15,5)) for i in range(1,6): plt.subplot(1,5,i) plt.imshow(X_train[i,:,:],cmap=’gray’) plt.title(‘Lenguaje de señas de {}’.format(Y_tren[i])) plt.axis(‘off’) plt.tight_layout() plt.show()

Aquí se mencionaron parámetros aleatorios para el tamaño de la figura para obtener una imagen clara y visible y luego se obtuvieron las imágenes iniciales de los datos como se muestra a continuación.

Como estamos trabajando con el conjunto de datos de imágenes y para la clasificación de las imágenes estamos usando el algoritmo de regresión logística, fue necesario remodelar el componente dependiente del tren y probarlo adecuadamente, ya que la regresión logística está diseñada para trabajar con dos dimensiones de datos como máximo. además, al tratarse de un conjunto de datos de imagen, es necesario reducir las dimensiones de los datos de imagen, que originalmente están en tres dimensiones, a dos dimensiones, como se muestra a continuación, para eliminar los problemas con respecto a la dimensionalidad.

🔥 Recomendado:  ¿Cómo puede agregar dinero a su tarjeta Cash App?

X_tren=X_tren.reforma(328,64*64) X_test=X_prueba.reforma(82,64*64)

Una vez que se tomaron los pasos de preprocesamiento de datos necesarios, el modelo de regresión logística se ajustó a los datos divididos importando el paquete de modelo lineal scikit necesario para la regresión logística como se muestra a continuación.

de sklearn.linear_model import LogisticRegression

Una vez que se importó el módulo necesario al entorno de trabajo, el modelo LogisticRegression se ajustó a los datos divididos como se muestra a continuación.

logreg = LogisticRegression() logreg.fit(X_tren,Y_tren)

Más tarde, el modelo se tomó para la predicción de diferentes escenarios de prueba donde el modelo pudo producir las predicciones correctas.

y_pred=logreg.predict(X_test)

A continuación se muestra uno de los resultados de clasificación de imágenes del modelo de regresión logística implementado, donde se puede observar la capacidad del modelo implementado para clasificar correctamente las muestras de imágenes.

Posteriormente, se obtuvo el puntaje de precisión del modelo de regresión logística para los datos de prueba, como se muestra a continuación, para evaluar la naturaleza genérica y la confiabilidad del modelo cuando se prueba el modelo para cambiar los datos, donde el modelo de regresión logística pudo producir un puntaje de precisión general de 98% para los datos de prueba. Los pasos para obtener la puntuación de precisión de un modelo de regresión logística se muestran en la siguiente figura.

Sin embargo, confiar solo en el parámetro de precisión no sería correcto todo el tiempo, ya que daría lugar a una interpretación errónea de los resultados. Debido a esto, las diversas otras métricas de rendimiento del modelo de regresión logística implementado se evaluaron a través de un informe de clasificación donde se pueden evaluar parámetros como la precisión, el recuerdo y la puntuación f1 para hacer interpretaciones adecuadas de los modelos.

🔥 Recomendado:  Vocoder neuronal y su aplicación en el reconocimiento de voz

Fuera de esto, cuando la media armónica o en términos simples, el parámetro de puntaje F1 también para ambas clases cae en un rango considerable cercano al 98% para la clase ‘0’ y el 97% para la clase ‘1’, que es un indicador de un modelo confiable . Para una mejor comprensión, a continuación se muestra el reporte de clasificación para el modelo de regresión logística implementado.

Resumen

La clasificación de imágenes es una de esas aplicaciones en el dominio del aprendizaje profundo y el procesamiento de imágenes donde, en ciertos momentos, la clasificación de varios niveles se toma con modelos como las redes neuronales convolucionales, donde el modelo construido podría tener que propagarse a través de varias capas. Sin embargo, si existe un requisito para la clasificación de imágenes binarias, incluso se puede implementar un modelo de algoritmo de aprendizaje automático supervisado simple pero efectivo, como la regresión logística, para obtener una clasificación de imágenes adecuada, como se describe en este artículo.

Referencias