Я реализую модель машинного обучения на Python, которая предсказывает успех или неудачу. Я создал фиктивную переменную, которая равна 1 в случае успеха и 0 в случае неудачи. Я понимаю концепцию матрицы путаницы, но я нашел в Интернете некоторые, где TP и TN находятся на противоположных сторонах матрицы. Я хотел бы знать, как интерпретировать результаты для моих переменных. Предсказывает ли верхний левый угол матрицы истинное положительное значение? Если да, будет ли это означать правильное предсказание количества успехов или правильное предсказание неудач?
Соответствует ли матрица приведенной ниже диаграмме, и если да, то как?
В идеале, пожалуйста, опишите каждый угол матрицы путаницы в контексте, где успех равен 1, а неудача — 0.
В случае бинарной классификации, где классы равны 0 и 1, и в соответствии с документом :
Коэффициент (0, 0) — это количество истинно отрицательных результатов (TN).
Коэффициент (0, 1) - это количество ложных срабатываний (FP).
Коэффициент (1, 0) — это количество ложноотрицательных результатов (FN).
Коэффициент (1, 1) — это количество истинно положительных результатов (ТР).
Спасибо @Ismael EL ATIFI Итак, по-вашему, верхний левый будет TN, а нижний правый будет TP? По сути, обратная сторона изображения, которое я разместил, верно?
Да. Это точно.
Обратитесь к документации: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
Поскольку вы не указали третий параметр для labels
в confusion_matrix
, метки в y_test_res
будут использоваться в отсортированном порядке, то есть в данном случае 0
, затем 1
. Метки строк представляют фактический y, а метки столбцов представляют прогнозируемый y.
Таким образом, в верхнем левом углу показано количество наблюдений отказов, т. е. фактический y был 0
и был предсказан 0
, то есть истинные отрицательные значения. В правом нижнем углу показаны истинные положительные значения, то есть фактический y был 1
и был предсказан 0
.
Верхний правый угол будет фактическим y = 0 и предсказанным y = 1, то есть ложным срабатыванием.
Использование графика матрицы путаницы немного улучшит ситуацию.
from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(forest, X_test, y_test)
print(plt.show())
Спасибо вам за разъяснение. К сожалению, поскольку я новичок в этом мире, документация по обучению scikit все еще сбивает с толку. Можно ли добавить метки и, возможно, построить их или что-то, чтобы прояснить ситуацию? Меня смущает нижняя правая часть TP. Я думал, что ТП - это когда он предсказал правильно. В вашем контексте, если фактическое значение равно 1, а прогнозируемое равно 0, то TP не имеет для меня смысла.
Как насчет использования функции plot_confusion_matrix
? Это может быть более интуитивно понятно. Я обновлю свой ответ.
Да, если бы вы могли показать мне, как это построить, это было бы замечательно.
Строки матрицы путаницы соответствуют истинным классам, а столбцы соответствуют предсказанным классам.