A continuación, y en línea con lo que hemos hecho con las características predictivas, vamos a transformar el contenido de la variable "y" en una lista formada por las versiones categorizadas de los valores que acabamos de ver. El código sería el siguiente:
y_train = [to_categorical(n, 10) for n in y]
Es decir, recorrremos los valores objetivo (variable "y") y los transformamos en la versión categorizada devuelta por la función to_categorical.
El resultado lo almacenamos en la variable y_train.
Eso sí, en este caso es necesario convertir cada número en un array de 10 valores pero, en un caso general, habrá que convertirlo en un array de tantos valores como neuronas tenga la capa de salida (el valor contenido en sizes[-1]), quedando el código de la siguiente forma:
y_train = [to_categorical(n, self.sizes[-1]) for n in y]
Por poner un ejemplo de uso, si la variable "y" contiene los siguientes valores:
y = pd.Series([0, 4, 1])
y
0 0
1 4
2 1
dtype: int64
...nuestra varialble y_train contendría la siguiente lista:
y_train = [to_categorical(n, 10) for n in y]
y_train
[array([[1.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.]]),
array([[0.],
[0.],
[0.],
[0.],
[1.],
[0.],
[0.],
[0.],
[0.],
[0.]]),
array([[0.],
[1.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.]])]