Я пытаюсь вычислить показатель микро F для прогноза, который сделала моя модель.Я обучил модель, используя word2vec Векторы с Keras и Tensorflow.Я использую библиотеку scikit для вычисления меры mirco F.
Но функция выдает это сообщение: ValueError: Классификационные метрики не могут обрабатывать сочетание целых индикаторов с несколькими метками и целей с непрерывным и множественным выходом
Кроме того, я делаю прогноз правильно?Я обучил модель на x_train (wordVectors) и y_train (resultVectors) и проверил с помощью x_test и y_test.
Теперь я сделал прогноз x_test и хочу оценить прогноз, используя y_test.До сих пор я делаю это правильно?
Массив прогнозирования выглядит следующим образом:
[[ 1.7533608e-02 5.8055294e+01 2.2185498e-03 ... -1.2394511e-03
1.0454212e+00 -1.6698670e-03]
[ 1.7539740e-02 5.8173992e+01 2.1747553e-03 ... -1.2764656e-03
1.0475068e+00 -1.6941782e-03]
[ 1.7591618e-02 5.8222389e+01 2.2053251e-03 ... -1.2856000e-03
1.0484750e+00 -1.6668942e-03] ...
, а истинные значения выглядят так:
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]...
Я уже пробовалпреобразовать оба массива в двоичные значения (с помощью np.argmax (..., axis = 1)).Тогда нет ошибки, и я получаю микро F меру, которая составляет около 0,59 ... что очень много, и поэтому я думаю, что я сделал ошибку.У меня вопрос, есть ли другой способ преобразования данных?Могу ли я преобразовать прогноз в значения с несколькими метками?
model = load_model('model.h5')
prediction = model.predict(x_test)
prediction_binary = np.argmax(prediction, axis=1)
y_test_binary = np.argmax(y_test, axis=1)
print(f1_score(y_test_binary, prediction_binary, average='micro'))
Я ожидаю, что результат <0,20, но вместо этого я получаю 0,59, что является очень хорошим значением. </p>
Любые предложения значительнооценили!