Поле поддержки sklearn.metrics.classification_report показывает неправильный номер для меток - PullRequest
0 голосов
/ 03 мая 2018

Я использую sklearn.metrics.classification_report для оценки результата моей классификации.

y_pred = np.argmax(model.predict(X_test), axis=1)
y_true = np.argmax(y_test, axis=1)
print(classification_report(y_true, y_pred, target_names=list(le.classes_)))

И вот мой результат:

              precision    recall  f1-score   support

 Technology       0.00      0.00      0.00         1
 Travel           0.00      0.00      0.00         5
 Fashion          0.00      0.00      0.00        25
 Entertainment    0.72      1.00      0.84       130
 Art              0.00      0.00      0.00         7
 Politic          0.00      0.00      0.00        12

 avg / total       0.52      0.72      0.61       180

Проблема в том, что у меня 7 этикеток. Заказ идет Технологии, Путешествия, Мода, Развлечения, Искусство, Политика, Спорт. На самом деле у меня нет никакого лейбла Art в моем результате y_true, но в отчете перечислены по порядку, поэтому он перечисляет Art, но пропускает Sports. Это пишет результат Политики для Искусства, и результат Спорта идет в ряд Политики.

Почему бы не пропустить Искусство? Я понятия не имею, как я могу решить это.

1 Ответ

0 голосов
/ 03 мая 2018

Метки индекса в отчете о классификации являются значениями аргумента "target_names". Пожалуйста, убедитесь, что вы даете правильные значения для этого аргумента.

В зависимости от требуемого результата вы должны иметь target_names = ["Технология", "Путешествия", "Мода", "Развлечения", "Политика", "Спорт"]

Я хотел бы предложить, пожалуйста, проверьте вывод вашего "le.classes_", и я не уверен, к какому преобразователю относится "le".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...