ConfusionMatrix

计算混淆矩阵。该方法应用于预测值向量。

matrix vector::ConfusionMatrix(
   const vector&       vect_true      // 真值向量
   );
 
 
matrix vector::ConfusionMatrix(
   const vector&       vect_true,     // 真值向量
   uint                label          //选项卡值
   );

参数

vect_true

[in] 真值向量。

label

[in] 计算混淆矩阵的标签值。

返回值

混淆矩阵。如果未指定标签值,则返回多类混淆矩阵,其中每个标签单独与其他标签匹配。如果指定了标签值,则返回一个2 x 2矩阵,其中指定的标签被视为正数,而所有其他标签均为负数(ovr,一vs其余)。

注意

混淆矩阵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]]
*/