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.
Tabla de contenido
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.
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.
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.