Я знаю, что этот вопрос каким-то образом дублируется, но ни один из ответов, которые я видел, явно не отвечает моим опасениям, поэтому я хотел бы спросить еще раз о матрице путаницы и classification_report
, характерной для моего случая здесь.
В общем, я использовал классификатор Случайный лес, чтобы предсказать, вернется ли пользователь на мою веб-страницу или с 1 = «Возврат» и 0 = «Без возврата»
- После обучения и прогнозирования данных я запустил некоторые метрики оценки следующим образом:
print('Precision score: {:.2f}'.format(precision_score(y_test, y_pred)))
print('Recall_score score: {:.2f}'.format(recall_score(y_test, y_pred)))
print('AUC.ROC score: {:.2f}'.format(roc_auc_score(y_test, y_pred)))
Точность: 0,63
Оценка Recall_score: 0,16
AUC.ROC оценка: 0,56
На данный момент, насколько я понимаю, результат представляет точку зрения «Возврат» (значение = 1), так что recall = 0.16
означает, что процент возвращающихся пользователей правильно определен.
Итак, мой первый вопрос: верно ли мое понимание?
- Я рассчитал матрицу путаницы и
classification_report
, чтобы подтвердить приведенный выше результат:
print(confusion_matrix(y_test, y_pred))
[[99981 3250]
[28799 5447]]
Из этого вывода матрицы смешения, вычисление Precision и Recall вернуло другое значение (0,97 и 0,78 соответственно).
Для classification_report
:
print(classification_report(y_test, y_pred))
precision recall f1-score support
0 0.78 0.97 0.86 103231
1 0.63 0.16 0.25 34246
Из отчета о классификации я предполагаю, что мое понимание вопроса (1) было правильным, а приведенный выше результат матрицы путаницы представляет пользователей «без возврата».
Итак, мой второй вопрос: верен ли мой вывод выше? Если да, то почему матрица смешения возвращает значения для пользователей «Нет возврата» вместо «Возврат», и как я могу вычислить аналогичную матрицу смешения для пользователей «Возврат»?