Я работаю с классификацией с несбалансированным набором данных, используя Sklearn.Я думаю, что Sklearn неправильно вычислил уровень ложных положительных результатов и уровень истинных положительных результатов, когда я хочу вычислить оценку AUC, результат отличается от того, что я получил из матрицы путаницы.
От Sklearn я получил следующую путаницуматрица:
confusion = confusion_matrix(y_test, y_pred)
array([[ 9100, 4320],
[109007, 320068]], dtype=int64)
конечно, я понимаю вывод как:
+-----------------------------------+------------------------+
| | Predicted | Predicted |
+-----------------------------------+------------------------+
| Actual | True positive = 9100 | False negative = 4320 |
| Actual | False positive = 109007 | True negative = 320068|
+--------+--------------------------+------------------------+
Однако для FPR и TPR я получил следующий результат:
false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_pred)
(false_positive_rate, true_positive_rate)
(array([0. , 0.3219076, 1. ]),
array([0. , 0.7459488, 1. ]))
Результат отличается от путаницы матрицы.Согласно моей таблице, я узнал, что FPR - это FNR, а TPR - это TNR.Затем я проверил документ матрицы путаницы и обнаружил, что:
Таким образом, в двоичной классификации число истинных негативов равно C0,0, ложных негативов - C1,0,истинное положительное значение равно C1,1, а ложное положительное значение равно C0,1.
Это означает, что матрица путаницы по Склеарну выглядит следующим образом:
+-----------------------------------+---------------------------+
| | Predicted | Predicted |
+-----------------------------------+---------------------------+
| Actual | True positive = 320068 | False negative = 109007 |
| Actual | False positive = 4320 | True negative = 9100 |
+--------+--------------------------+---------------------------+
Согласно теории, длябинарная классификация, редкий класс обозначается как положительный класс.
Почему Склеарн относится к классу большинства как к положительному?