Matthews Korrelationskoeffizient mit Mehrfachklasse

9

Der Matthews-Korrelationskoeffizient ( MCC ) ist eine Messung zur Messung der Qualität einer binären Klassifikation ([Wikipedia] [1]). MCC Formulierung wird für die binäre Klassifizierung unter Verwendung von wahr-positiven ( TP ), falsch positiven ( FP ), falsch negativen ( FN ) und wahr-negativen ( TN ) Werten angegeben, wie nachstehend angegeben:

MCC=TP×TNFP×FN(TP+FP)(TP+FN)(TN+FP)(TN+FN)

Ich habe einen Fall , wo ich drei verschiedene Klassen klassifizieren muß, A , B , und C . Kann ich die obige Formulierung anwenden, um das MCC für einen Fall mit mehreren Klassen zu berechnen, nachdem die Werte für TP , TN , FP und FN für jede Klasse wie unten gezeigt berechnet wurden?

TP=TPA+TPB+TPC;TN=TNA+TNB+TNC;FP=FPA+FPB+FPC;FN=FNA+FNB+FNC;

John David
quelle
Der Matthews-Korrelationskoeffizient (der für die binäre Klassifizierung einfach die Phi- oder Pearson-Korrelation ist) wird zur sogenannten Rk-Korrelation für die Klassifizierung mehrerer Klassen. Zwei Formeln davon sind in meinem Dokument "Partitionen vergleichen" auf meiner Webseite zitiert.
ttnphns

Antworten:

5

Ja, im Allgemeinen können Sie. Dieser Ansatz, den Sie verwenden möchten, wird manchmal als "Mikro-Mittelwertbildung" bezeichnet: Summieren Sie zuerst alle TNs, FPs usw. für jede Klasse und berechnen Sie dann die interessierende Statistik.

Eine andere Möglichkeit, die Statistiken für einzelne Klassen zu kombinieren, ist die Verwendung der sogenannten "Makro-Mittelung": Hier berechnen Sie zuerst die Statistiken für einzelne Klassen (A gegen nicht A, B gegen nicht B usw.) und dann den Durchschnitt von Sie.

Sie können einen Blick hier für einige zusätzliche Details. Die Seite spricht über Präzision und Rückruf, aber ich glaube, sie gilt sowohl für Matthews Koeffizienten als auch für andere Statistiken, die auf Kontingenztabellen basieren.

Alexey Grigorev
quelle
4

Die Makro-Mittelungstechnik eignet sich gut für Präzision, Empfindlichkeit und Spezifität. Aber als ich es für MCC ausprobierte, lieferte es keine richtigen Ergebnisse. Weitere Informationen zu MCC-Berechnungen für mehrere Klassen finden Sie unter:

  1. Jurman G, Riccadonna S, Furlanello C (2012) " Ein Vergleich von MCC- und CEN-Fehlermessungen bei der Vorhersage mehrerer Klassen ". PLoS ONE 7 (8): e41882. doi: 10.1371 / journal.pone.0041882
  2. Jurman, Giuseppe und Cesare Furlanello. "Eine einheitliche Sichtweise für Leistungsmessungen in der Vorhersage mehrerer Klassen." arXiv-Vorabdruck arXiv: 1008.2908 (2010).

Der folgende Code hat bei mir funktioniert:

% the confusion matrix at input is given by matrix cm_svm_array
mcc_numerator=0;count=1;
% limits klm=1 TO n SUM(ckk.cml - clk.ckm)
for k = 1:1:length(cm_svm_array)
    for l=1:1:length(cm_svm_array)
        for m=1:1:length(cm_svm_array)
          mcc_numerator1(count) = (cm_svm_array(k,k) *cm_svm_array(m,l))-
                                  (cm_svm_array(l,k)*cm_svm_array(k,m))
          mcc_numerator=mcc_numerator+mcc_numerator1(count)
          count=count+1;
        end
    end
end

mcc_denominator_1=0 ; count=1;
for k=1:1:length(cm_svm_array)
     mcc_den_1_part1=0;
    for l=1:1:length(cm_svm_array)
        mcc_den_1_part1= mcc_den_1_part1+cm_svm_array(l,k);
    end
    mcc_den_1_part2=0;
    for f=1:1:length(cm_svm_array)
        if f ~=k
          for g=1:1:length(cm_svm_array)
            mcc_den_1_part2= mcc_den_1_part2+cm_svm_array(g,f);
          end
        end
    end
    mcc_denominator_1=(mcc_denominator_1+(mcc_den_1_part1*mcc_den_1_part2));
end

mcc_denominator_2=0; count=1;
for k=1:1:length(cm_svm_array)
     mcc_den_2_part1=0;
    for l=1:1:length(cm_svm_array)
        mcc_den_2_part1= mcc_den_2_part1+cm_svm_array(k,l);
    end
    mcc_den_2_part2=0;
    for f=1:1:length(cm_svm_array)
        if f ~=k
          for g=1:1:length(cm_svm_array)
            mcc_den_2_part2= mcc_den_2_part2+cm_svm_array(f,g);
          end
        end
    end
    mcc_denominator_2=(mcc_denominator_2+(mcc_den_2_part1*mcc_den_2_part2));
end

mcc = (mcc_numerator)/((mcc_denominator_1^0.5)*(mcc_denominator_2^0.5))
Swati Shilaskar
quelle
0

MCC ist für die binäre Klassifizierung ausgelegt.

Wenn Sie eine ähnliche Messung eines Klassifikators erhalten möchten, können Sie Cohens Kappa ausprobieren. Es kann auf eine Verwirrungsmatrix mit mehreren Klassen angewendet werden.

Nico
quelle