ConfusionMatrix

Berechnen der Wahrheitsmatrix oder auch Konfusionsmatrix: Richtige und falsche Klassifikationen. Die Methode wird auf den Vektor der vorhergesagten Werte angewendet.

Matrix vector::ConfusionMatrix(
   const vector&       vect_true      // Vektor der wahren Werte
   );
 
 
Matrix vector::ConfusionMatrix(
   const vector&       vect_true,     // Vektor der wahren Werte
   uint                label          // Wert des Labels
   );

Parameter

vect_true

[in] Vektor mit den wahren Werten.

label

[in] Der Labelwert für die Berechnung der Wahrheitsmatrix oder auch Konfusionsmatrix (confusion matrix).

Rückgabewert

Die Konfusionsmatrix. Wird kein Labelwert angegeben, wird eine Mehrklassen-Konfusionsmatrix zurückgegeben, in der jedes Label mit jedem anderen Label einzeln abgeglichen wird. Wird ein Labelwert angegeben, wird eine 2 x 2-Matrix zurückgegeben, in der das angegebene Label als positiv gilt, während alle anderen Labels negativ sind (ovr, one vs rest).

Hinweis

Die Konfusionsmatrix C ist so beschaffen, dass Cij gleich der Anzahl der Beobachtungen ist, von denen bekannt ist, dass sie zur Gruppe i gehören, und von denen vorhergesagt wird, dass sie zur Gruppe j gehören. Bei der binären Klassifizierung ist die Anzahl der wahren Negativen (TN) gleich C00, der falschen Negativen (FN) gleich C10, der wahren Positiven (TP) gleich C11 und der falschen Positiven (FP) gleich C01.

Mit anderen Worten: Die Matrix kann wie folgt grafisch dargestellt werden:

TN

FP

FN

TP

Die Größen des Vektors der wahren Werte und des Vektors der vorhergesagten Werte sollten gleich sein.

Beispiel:

   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]]
*/