При обучении моей сети у меня возникает проблема классификации нескольких меток, в которой я преобразую метки классов в одно горячее кодирование.
После обучения модели и генерации прогнозов - keras просто выводит массив значений безуказание метки класса.
Как лучше объединить их, чтобы мой API мог возвращать значимые результаты потребителю?
Пример
y = pd.get_dummies(df_merged.eventId)
y
2CBC9h3uple1SXxEVy8W GiiFxmfrUwBNMGgFuoHo e06onPbpyCucAGXw01mM
12 1 0 0
13 1 0 0
14 1 0 0
prediction = model.predict(pred_test_input)
prediction
array([[0.5002058 , 0.49697363, 0.50251794]], dtype=float32)
Желаемый результат: {results: { 2CBC9h3uple1SXxEVy8W: 0.5002058, ...}
РЕДАКТИРОВАТЬ: Добавление модели в соответствии с комментарием - но это всего лишь игрушечная модель.
model = Sequential()
model.add(
Embedding(
input_dim=embeddings_index.shape[0],
output_dim=embeddings_index.shape[1],
weights=[embeddings_index],
input_length=MAX_SEQ_LENGTH,
trainable=False,
)
)
model.add(LSTM(300))
model.add(Dense(units=len(y.columns), activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
РЕДАКТИРОВАНИЕ 2 - добавление y.
Итак, мой y
в следующем формате:
eventId
123
123
234
...
Затем я использую y = pd.get_dummies(df_merged.eventId)
, чтобы преобразовать это во что-то, что модель может потреблять, и хотел бы добавить eventIds обратно к прогнозам.