ConfusionMatrix

Вычисляет матрицу ошибок. Метод применяется к вектору предсказанных значений.

matrix vector::ConfusionMatrix(
   const vector&       vect_true      // вектор истинных значений
   );
 
 
matrix vector::ConfusionMatrix(
   const vector&       vect_true,     // вектор истинных значений
   uint                label          // значение метки
   );

Параметры

vect_true

[in] Вектор истинных значений.

эпохи

[in] Значение метки для вычисления матрицы ошибок.

Возвращаемое значение

Матрица ошибок. Если значение метки не указано, то возвращается многоклассовая матрица ошибок, где каждая метка сопоставляется с каждой другой меткой по отдельности. Если указано значение метки, то возвращается матрица размером 2 x 2, где указанная метка считается положительной, все остальные метки - отрицательные (ovr, one vs rest).

Примечание

Матрица ошибок C такова, что Cij равен количеству наблюдений, которые находятся в группе i, а также, по прогнозам, - в группе j. Таким образом, в бинарной классификации количество истинно отрицательных результатов (TN) равно C00, ложноотрицательных результатов (FN) — C10, истинно положительных результатов (TP) — C11 и ложноположительных результатов (FP) — C01.

То есть эту матрицу можно графически представить таким образом:

TN

FP

FN

TP

Размеры вектора истинных значений и вектора предсказанных значений должны быть одинаковыми.

Пример:

   vector y_true={7,2,1,0,4,1,4,9,5,9,0,6,9,0,1,5,9,7,3,4,8,4,2,7,6,8,4,2,3,6};
   vector y_pred={7,2,1,0,4,1,4,9,5,9,0,6,9,0,1,5,9,7,3,4,2,9,4,9,5,9,2,7,7,0};
   matrix confusion=y_pred.ConfusionMatrix(y_true);
   Print(confusion);
   confusion=y_pred.ConfusionMatrix(y_true,0);
   Print(confusion);
   confusion=y_pred.ConfusionMatrix(y_true,1);
   Print(confusion);
   confusion=y_pred.ConfusionMatrix(y_true,2);
   Print(confusion);
 
 
/*
  [[3,0,0,0,0,0,0,0,0,0]
   [0,3,0,0,0,0,0,0,0,0]
   [0,0,1,0,1,0,0,1,0,0]
   [0,0,0,1,0,0,0,1,0,0]
   [0,0,1,0,3,0,0,0,0,1]
   [0,0,0,0,0,2,0,0,0,0]
   [1,0,0,0,0,1,1,0,0,0]
   [0,0,0,0,0,0,0,2,0,1]
   [0,0,1,0,0,0,0,0,0,1]
   [0,0,0,0,0,0,0,0,0,4]]
  [[26,1]
   [0,3]]
  [[27,0]
   [0,3]]
  [[25,2]
   [2,1]]
*/