Матрица путаницы поможет вам определить, какие из классификаций модели были правильными, а какие нет. Размышление об этом только с двумя классами облегчает понимание.
Вот как работает матрица путаницы:
В этой матрице у нас есть только два возможных класса, «НЕТ» и «ДА». Колонки представляют прогнозируемые значения, а строки представляют фактические (истинные) значения. Эта матрица говорит об оценочной модели:
Это правильно классифицирует 50 образцов как "НЕТ". (Они называются True Negatives )
Это неверно классифицировало 5 образцов как "НЕТ", в то время как те должны были быть "ДА". (Они называются False Negatives )
Это неверно классифицировало 10 сэмплов как "ДА", тогда как те должны были быть "НЕТ". (Они называются Ложные срабатывания )
Это правильно классифицировано 100 образцов как "ДА". (Они называются True Positives )
Чтобы проверить, сколько прогнозов для каждого класса вы должны суммировать значения в столбцах: эта модель предсказывает 55 "НЕТи 110 ДА.
Чтобы проверить, сколько истинных выборок в каждом классе вы должны суммировать значения в строках: выборки были действительно 60 "НЕТ" и 105 "ДА".
Сумма в обоихчисло дел равно 165, что является общим количеством оцененных выборок.
Специально для вашей задачи:
Когда вы создаете запутанную матрицу 4x4, логика работаетТочно так же, каждый «дополнительный» класс добавляет дополнительную строку и столбец. В ваших выходных данных все в порядке:
Predicted: {'AGN': 7, 'BeXRB': 25, 'HMXB': 7, 'SNR': 2}
Tested: {'AGN': 10, 'BeXRB': 22, 'HMXB': 7, 'SNR': 2}
Предполагается, что "Tested" является вашим истинным значением:
- это означает, что у вас было 10 "AGN" выборок, но ваша модельтолько 7 из них (очевидно, только 3 правильно).
- У вас также было 22 образца «BeXRB», и ваша модель была классифицирована как «BeXRB» 25 (очевидно, только 13 правильно).
РЕДАКТИРОВАТЬ:
Значения в вашей матрице не совпадают со значениями в вашем PREDICTED выводе (dict), как вы можете проверить: (я добавил столбец и строку SUM)
Pred AGN Pred BeXRB Pred HMXB Pred SNR SUM
AGN True 3 3 4 0 10
BeXRB True 2 13 6 1 22
HMXB True 0 3 4 0 7
SNR True 0 2 0 0 2
SUM: 5 21 14 1
С количеством предоставленной вами информации я не могу вам помочь в дальнейшем, но вы должны проверить массив classif_predict
.
Если вы используете Jupyter Notebook, запуск ячеек в другом порядке может спровоцировать такой видповедение, из-за изменения значений переменных. Если это так, попробуйте запустить все снова в ожидаемом порядке.