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、1 対残り)。

注意事項

混同行列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]]
*/