Мы можем суммировать количество правильных и неправильных прогнозов в одной таблице, используя матрицу путаницы, и анализировать результаты наших моделей машинного обучения.
В этой статье я пишу свою реализацию матрицы путаницы с использованием Python и NumPy. Эта функция ниже может вычислить матрицу путаницы любого размера или количества классов.
Если вы не знаете, что такое матрица путаницы, посмотрите это потрясающее видео здесь.
import numpy as np def confusion_matrix(true,pred): classes = set(true + pred) num_classes = len(classes) shape = (num_classes, num_classes) mat = np.zeros(shape) n = max(len(true),len(pred)) for i in range(num_classes): for j in range(num_classes): for k in range(n): if true[k]-1 == i: if pred[k]-1 == j: mat[i][j] = mat[i][j] + 1 return mat
Давайте попробуем это на примере:
actual = [1,1,2,3,4,1,5] predicted = [1,2,2,3,4,6,5] confusion_matrix(actual, predicted)
Это дает следующий результат:
array([[1., 1., 0., 0., 0., 1.], [0., 1., 0., 0., 0., 0.], [0., 0., 1., 0., 0., 0.], [0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 1., 0.], [0., 0., 0., 0., 0., 0.]])
Спасибо :D