Coeficiente de correlación de Matthews con multiclase

9

Coeficiente de correlación de Matthews (MCC) es una medida para medir la calidad de una clasificación binaria ([Wikipedia] [1]). MCCLa formulación se da para la clasificación binaria utilizando verdaderos positivos (TP), falsos positivos (FP), falsos negativos (FN) y verdaderos negativos (TN) valores como se indica a continuación:

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

Tengo un caso en el que necesito clasificar tres clases diferentes, A, By C. ¿Puedo aplicar la formulación anterior para calcularMCC para caso de clases múltiples después de calcular TP, TN, FPy FN valores para cada clase como se muestra a continuación?

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

John David
fuente
El coeficiente de correlación de Matthews (que para la clasificación binaria es simplemente la correlación Phi o Pearson) se convierte en lo que se conoce como correlación Rk para la clasificación multiclase. Dos fórmulas se citan en mi documant "Comparar particiones" en mi página web.
ttnphns

Respuestas:

5

Sí, en general, puedes. Este enfoque que desea utilizar a veces se denomina "Micro-Promedio": primero, sume todos TNs, FPs, etc. para cada clase y luego calcule la estadística de interés.

Otra forma de combinar las estadísticas para clases individuales es usar el llamado "Macro-Promedio": aquí primero calcula las estadísticas para clases individuales (A vs no A, B vs no B, etc.), y luego calcula el promedio de ellos.

Puede echar un vistazo aquí para obtener algunos detalles adicionales. La página habla de precisión y recuperación, pero creo que se aplica al coeficiente de Matthew, así como a otras estadísticas basadas en tablas de contingencia.

Alexey Grigorev
fuente
4

La técnica de promedio macro funciona bien para precisión, sensibilidad y especificidad. Pero cuando lo probé para MCC no dio los resultados adecuados. Para obtener más detalles sobre los cálculos de MCC multiclase, consulte:

  1. Jurman G, Riccadonna S, Furlanello C (2012) " Una comparación de las medidas de error de MCC y CEN en la predicción de clases múltiples ". PLoS ONE 7 (8): e41882. doi: 10.1371 / journal.pone.0041882
  2. Jurman, Giuseppe y Cesare Furlanello. "Una visión unificadora de las medidas de rendimiento en la predicción de clases múltiples". preimpresión de arXiv arXiv: 1008.2908 (2010).

El siguiente código funcionó para mí:

% 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
fuente
1

MCC se puede utilizar para Wikipedia en clasificación binaria y multiclase y se implementa en sci-kit learn para etiquetas binarias y multiclase.

David Makovoz
fuente
0

MCC está diseñado para la clasificación binaria.

Si desea obtener una medida similar de un clasificador, puede probar el Kappa de Cohen, que se puede aplicar a una matriz de confusión de varias clases.

Nico
fuente