2.12 - Práctica 4: la Clasificación Multiclase en Keras

Lección 12 de la sección “Redes Neuronales” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior vimos que la Clasificación Multiclase es muy similar a la clasificación binaria realizada por la Neurona Artificial, con la diferencia de que en la primera requerimos más neuronas (una por cada categoría) y que usaremos la función de activación softmax.

En esta lección pondremos en práctica estos conceptos para crear, entrenar y poner a prueba un clasificador multiclase haciendo uso de Python y la librería Keras.

Contenido exclusivo suscriptores

Suscríbete y accede al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

El problema a resolver y el set de datos

El set de datos contiene información de 13 estudiantes, en donde para cada uno se indican las horas de sueño (x1) y las horas de estudio (x2), así como el puntaje obtenido en un examen: “Alto”, “Medio” o “Bajo”.

El objetivo es crear un sencillo clasificador, haciendo uso precisamente de los conceptos de la Clasificación Multiclase vistos en la lección anterior.

Al dibujar la distribución de estos datos usando matplotlib vemos que son linealmente separables, con lo cual confirmamos que un clasificador multiclase resulta adecuado para el problema que queremos resolver.

Pre-procesamiento

Antes de implementar el modelo debemos representar la categoría de cada dato usando el formato one-hot. Para ello podemos usar las funciones LabelEncoder o OneHotEncoder de la librería Scikit-Learn, o la función to_categorical de la librería Keras. En cualquiera de estos casos obtendremos exactamente los mismos resultados.

Creación del modelo en Keras

Al igual que en la práctica 3 (la Neurona Artificial en Keras), para crear nuestro modelo usaremos el módulo Sequential y el método add de Keras. En este último caso es importante tener en cuenta que tendremos que especificar que haremos uso de la función softmax.

Para el optimizador usaremos la función SGD, que implementa el método del gradiente descendente, y en particular especificaremos que la función de error a usar será la entropía cruzada (categorical_crossentropy), pues en este caso tenemos más de dos categorías.

Entrenamiento y predicción

Usando el método fit realizaremos un total de 130 iteraciones, con lo que al final lograremos una exactitud del 100%.

Al dibujar las frontera de decisión encontramos que estas son lineales, lo que es consistente con lo explicado en la lección anterior para el caso de la Clasificación Multiclase.

Podemos además usar el método predict para clasificar un nuevo dato con el modelo ya entrenado.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Muy bien, acabamos de ver que Keras facilita enormemente la implementación de nuestros modelos. Con muy pocas líneas de código, y unos ligeros cambios, podemos implementar y entrenar modelos con diferentes características, bien sea para tareas de clasificación binaria o multiclase.

Así que con lo visto hasta el momento ya estamos listos para adentrarnos en la primera de las arquitecturas del Deep Learning. Así que en la próxima lección veremos una idea intuitiva acerca de las Redes Neuronales.

Ver todas las lecciones de este curso