@HerrvonWurst Это потому, что проблема, с которой вы связались, работа классификатора состоит в том, чтобы поместить изображения только в один класс, тогда как в заданном вопросе классификатор должен назначить входные данные нескольким классам.

уверен, как интерпретировать поведение Keras по умолчанию в следующей ситуации:

Мой Y (основа истины) был создан с использованием scikit-learn'sMultilabelBinarizer().

Поэтому, чтобы привести случайный пример, одна строка моегоy столбец закодирован как горячо:[0,0,0,1,0,1,0,0,0,0,1].

Таким образом, у меня есть 11 классов, которые можно предсказать, и более чем один может быть правдой; отсюда и многоплановый характер проблемы. Есть три метки для этого конкретного образца.

Я тренирую модель, как если бы я работал над проблемой, не связанной с несколькими метками (бизнес, как обычно), и не получаю ошибок

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

Что делает Керас, когда сталкивается с моимy_train и видит, что он является «множественным» горячим кодированием, то есть в каждом ряду имеется более одного «одного»y_train? По сути, Keras автоматически выполняет многослойную классификацию? Есть ли различия в интерпретации показателей оценки?

Ответы на вопрос(1)

Ваш ответ на вопрос