¿Cómo maneja Keras la clasificación multicabel?

No estoy seguro de cómo interpretar el comportamiento predeterminado de Keras en la siguiente situación:

Mi Y (verdad fundamental) se configuró utilizando scikit-learnMultilabelBinarizer()

Por lo tanto, para dar un ejemplo aleatorio, una fila de miy La columna está codificada en caliente como tal:[0,0,0,1,0,1,0,0,0,0,1].

Entonces tengo 11 clases que podrían predecirse, y más de una puede ser cierta; De ahí la naturaleza multicabel del problema. Hay tres etiquetas para esta muestra en particular.

Entreno el modelo como lo haría para un problema que no es de múltiples capas (negocios como de costumbre) y no obtengo errores.

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

model = Sequential()
model.add(Dense(5000, activation='relu', input_dim=X_train.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(600, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(y_train.shape[1], activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy',])

model.fit(X_train, y_train,epochs=5,batch_size=2000)

score = model.evaluate(X_test, y_test, batch_size=2000)
score

¿Qué hace Keras cuando se encuentra con miy_train y ve que está codificado en caliente "multi", lo que significa que hay más de un 'uno' presente en cada fila dey_train? Básicamente, ¿Keras realiza automáticamente la clasificación de múltiples etiquetas? ¿Alguna diferencia en la interpretación de las métricas de puntuación?

Respuestas a la pregunta(1)

Su respuesta a la pregunta