Как интерпретировать матрицу путаницы в Python для 2 классов

Я реализую модель машинного обучения на Python, которая предсказывает успех или неудачу. Я создал фиктивную переменную, которая равна 1 в случае успеха и 0 в случае неудачи. Я понимаю концепцию матрицы путаницы, но я нашел в Интернете некоторые, где TP и TN находятся на противоположных сторонах матрицы. Я хотел бы знать, как интерпретировать результаты для моих переменных. Предсказывает ли верхний левый угол матрицы истинное положительное значение? Если да, будет ли это означать правильное предсказание количества успехов или правильное предсказание неудач?

Соответствует ли матрица приведенной ниже диаграмме, и если да, то как?

В идеале, пожалуйста, опишите каждый угол матрицы путаницы в контексте, где успех равен 1, а неудача — 0.

Строки матрицы путаницы соответствуют истинным классам, а столбцы соответствуют предсказанным классам.

MYousefi 24.12.2020 20:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
1 020
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В случае бинарной классификации, где классы равны 0 и 1, и в соответствии с документом :

  • 1-й ряд для класса 0
  • 2 ряд для 1 класса
  • 1-й столбец для прогнозируемого класса 0
  • 2-й столбец для прогнозируемого класса 1

Коэффициент (0, 0) — это количество истинно отрицательных результатов (TN).
Коэффициент (0, 1) - это количество ложных срабатываний (FP).
Коэффициент (1, 0) — это количество ложноотрицательных результатов (FN).
Коэффициент (1, 1) — это количество истинно положительных результатов (ТР).

Спасибо @Ismael EL ATIFI Итак, по-вашему, верхний левый будет TN, а нижний правый будет TP? По сути, обратная сторона изображения, которое я разместил, верно?

Ammar Kamran 24.12.2020 20:13

Да. Это точно.

Ismael EL ATIFI 24.12.2020 20:27
Ответ принят как подходящий

Обратитесь к документации: 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 не имеет для меня смысла.

Ammar Kamran 24.12.2020 20:23

Как насчет использования функции plot_confusion_matrix? Это может быть более интуитивно понятно. Я обновлю свой ответ.

Sharon Choong 24.12.2020 20:28

Да, если бы вы могли показать мне, как это построить, это было бы замечательно.

Ammar Kamran 24.12.2020 20:55

Другие вопросы по теме