Матрица смешения 2x2 в классификации трех классов? - PullRequest
0 голосов
/ 05 марта 2020

Я делаю классификацию для набора данных с тремя классами (Метки Низкий, Средний, Высокий).

Я запускаю следующий код, чтобы получить свою матрицу путаницы:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

И я получить следующий вывод для cm:

array([[18, 10],
       [ 7, 61]], dtype=int64)

Что означает этот вывод? Я прочитал следующую ссылку, но не понял Матрица путаницы и статистика классов

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Давайте подробнее рассмотрим результаты:

tn, fp, fn, tp = np.array([[18, 10],
                           [ 7, 61]]).ravel()

Что означает:

tn (True Negative) = 18
fp (False Positive) = 10
fn (False Negative) = 7 
tp (True Positive) = 61

Другими словами,

  • 18 0 образцов, классифицированных (правильно) как класс-0
  • 10 образцов класса-0, классифицированных (неправильно) как класс-1
  • 7 образцов класса 1, классифицированных (неправильно) как класс-0
  • 61 образцы класса 1, классифицированные (правильно) как класс 1

Вы также можете напрямую использовать

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
0 голосов
/ 05 марта 2020

Это объяснение того, что вы получаете.

Для любой матрицы путаницы NxN справедливо следующее:

Фактический : является истинным этикетки

enter image description here


Для случая 2x2 (более простое объяснение):

enter image description here


Читайте также: https://scikit-learn.org/stable/modules/model_evaluation.html#confusion -матрица

...