Main Content

average

Calcular las métricas de rendimiento para una curva de característica operativa del receptor (ROC) media en un problema multiclase

Desde R2022a

    Descripción

    ejemplo

    [FPR,TPR,Thresholds,AUC] = average(rocObj,type) calcula las medias de las métricas de rendimiento almacenadas en el objeto rocmetrics rocObj para un problema de clasificación multiclase utilizando el método de promediado especificado en type. La función devuelve la tasa de falsos positivos (FPR) media y la tasa de verdaderos positivos (TPR) media para cada valor del umbral de Thresholds. La función también devuelve AUC, el área bajo la curva ROC compuesta por FPR y TPR.

    Ejemplos

    contraer todo

    Calcule las métricas de rendimiento de un problema de clasificación multiclase creando un objeto rocmetrics y, a continuación, calcule los valores medios de las métricas utilizando la función average. Represente la curva ROC media utilizando las salidas de average.

    Cargue el conjunto de datos fisheriris. La matriz meas contiene mediciones de 150 flores diferentes. El vector species enumera las especies de cada flor. species contiene tres nombres de flores distintos.

    load fisheriris

    Entrene un árbol de clasificación que clasifique las observaciones en una de las tres etiquetas. Realice una validación cruzada del modelo utilizando una validación cruzada de 10 particiones.

    rng("default") % For reproducibility
    Mdl = fitctree(meas,species,Crossval="on");

    Calcule las puntuaciones de clasificación de las observaciones de la partición de validación.

    [~,Scores] = kfoldPredict(Mdl);
    size(Scores)
    ans = 1×2
    
       150     3
    
    

    La salida Scores es una matriz de tamaño 150 por 3. El orden de las columnas de Scores sigue el orden de las clases de Mdl, almacenadas en Mdl.ClassNames.

    Cree un objeto rocmetrics usando las etiquetas verdaderas de species y las puntuaciones de clasificación de Scores. Especifique el orden de las columnas de Scores utilizando Mdl.ClassNames.

    rocObj = rocmetrics(species,Scores,Mdl.ClassNames);

    rocmetrics calcula la FPR y el TPR en diferentes umbrales y encuentra el valor AUC para cada clase.

    Calcule los valores medios de las métricas de rendimiento, incluyendo la FPR y la TPR en diferentes umbrales y el valor AUC, utilizando el método de macropromediado.

    [FPR,TPR,Thresholds,AUC] = average(rocObj,"macro");

    Represente la curva ROC media y muestre el valor AUC medio. Incluya (0,0) para que la curva comience desde el origen (0,0).

    plot([0;FPR],[0;TPR])
    xlabel("False Positive Rate")
    ylabel("True Positive Rate")
    title("Average ROC Curve")
    hold on
    plot([0,1],[0,1],"k--")
    legend(join(["Macro-average (AUC =",AUC,")"]), ...
        Location="southeast")
    axis padded
    hold off

    Alternativamente, puede crear la curva ROC media usando la función plot. Especifique AverageROCType="macro" para calcular las métricas de la curva ROC media utilizando el método de macropromediado.

    plot(rocObj,AverageROCType="macro",ClassNames=[])

    Argumentos de entrada

    contraer todo

    Rendimiento de la clasificación de evaluación de objetos, especificado como un objeto rocmetrics.

    Método de promediado, especificado como "micro", "macro" o "weighted".

    • "micro" (micropromediado): average encuentra la métrica de rendimiento medio tratando todos los problemas de clasificación binaria de uno contra todos como un único problema de clasificación binario. La función calcula los componentes de la matriz de confusión para el problema de clasificación binaria combinado y, luego, calcula la FPR y la TPR medias utilizando los valores de la matriz de confusión.

    • "macro" (macropromediado): average calcula los valores medios de FPR y TPR realizando el promediado de los valores de todos los problemas de clasificación binaria de uno contra todos.

    • "weighted" (macropromediado ponderado): average calcula los valores medios ponderados de FPR y TPR utilizando el método de macropromediado y usando las probabilidades de clase previas (la propiedad Prior de rocObj) como ponderaciones.

    El tipo de algoritmo determina la longitud de los vectores de los argumentos de salida (FPR, TPR y Thresholds). Para obtener más información, consulte Average of Performance Metrics.

    Tipos de datos: char | string

    Argumentos de salida

    contraer todo

    Tasas medias de falsos positivos, devueltas como un vector numérico.

    Tasas medias de verdaderos positivos, devueltas como un vector numérico.

    Umbrales de las puntuaciones de clasificación en los que la función encuentra cada uno de los valores medios de la métrica de rendimiento (FPR y TPR), devueltos como vector.

    Área bajo la curva ROC media compuesta por FPR y TPR, devuelta como un escalar numérico.

    Más acerca de

    contraer todo

    Curva de característica operativa del receptor (ROC)

    Una curva ROC muestra la tasa de verdaderos positivos frente a la tasa de falsos positivos para diferentes umbrales de puntuaciones de clasificación.

    La tasa de verdaderos positivos y la tasa de falsos positivos se definen de la siguiente manera:

    • La tasa de verdaderos positivos (TPR), también conocida como recall o sensibilidad: TP/(TP+FN), donde TP es el número de verdaderos positivos y FN es el número de falsos negativos

    • Tasa de falsos positivos (FPR), también conocida como fallout o 1-especificidad: FP/(TN+FP), donde FP es el número de falsos positivos y TN es el número de verdaderos negativos

    Cada punto de una curva ROC corresponde a un par de valores TPR y FPR para un valor de umbral específico. Puede encontrar diferentes pares de valores TPR y FPR variando el valor de umbral y, luego, crear una curva ROC utilizando los pares. Para cada clase, rocmetrics utiliza todos los valores diferentes de puntuación ajustada como valores de umbral para crear una curva ROC.

    Para un problema de clasificación multiclase, rocmetrics formula un conjunto de problemas de clasificación binaria de uno contra todos para tener un problema binario para cada clase y encuentra una curva ROC para cada clase usando el correspondiente problema binario. Cada problema binario asume que una clase es positiva y el resto son negativas.

    Para un problema de clasificación binaria, si especifica las puntuaciones de clasificación como una matriz, rocmetrics formula dos problemas de clasificación binaria de uno contra todos. Cada uno de estos problemas trata una clase como positiva y la otra como negativa, y rocmetrics encuentra dos curvas ROC. Utilice una de las curvas para evaluar el problema de clasificación binaria.

    Para obtener más información, consulte ROC Curve and Performance Metrics.

    Área bajo la curva ROC (AUC)

    El área bajo una curva ROC (AUC) corresponde a la integral de una curva ROC (valores de la TPR) con respecto a la FPR desde FPR = 0 hasta FPR = 1.

    El AUC proporciona una medida de rendimiento agregada en todos los umbrales posibles. Los valores AUC se encuentran en el rango de 0 a 1 y los valores AUC mayores indican un mejor rendimiento del clasificador.

    Diseño de código de uno contra todos (OVA)

    El diseño de código de uno contra todos (OVA) reduce un problema de clasificación multiclase a un conjunto de problemas de clasificación binaria. En este diseño de código, cada clasificación binaria trata una clase como positiva y el resto de clases como negativas. rocmetrics utiliza el diseño de código OVA para la clasificación multiclase y evalúa el rendimiento en cada clase utilizando la clasificación binaria de que la clase es positiva.

    Por ejemplo, el diseño de código OVA para tres clases formula tres clasificaciones binarias:

    Binary 1Binary 2Binary 3Class 1111Class 2111Class 3111

    Cada fila corresponde a una clase y cada columna corresponde a un problema de clasificación binaria. La primera clasificación binaria supone que la clase 1 es una clase positiva y que el resto de las clases son negativas. rocmetrics evalúa el rendimiento en la primera clase utilizando el primer problema de clasificación binaria.

    Algoritmos

    contraer todo

    Puntuaciones ajustadas para un problema de clasificación multiclase

    Para cada clase, rocmetrics ajusta las puntuaciones de clasificación (argumento de entrada Scores de rocmetrics) relativas a las puntuaciones del resto de clases si especifica Scores como una matriz. En concreto, la puntuación ajustada de una clase dada una observación es la diferencia entre la puntuación de la clase y el valor máximo de las puntuaciones del resto de las clases.

    Por ejemplo, si tiene [s1,s2,s3] en una fila de Scores para un problema de clasificación con tres clases, los valores de puntuación ajustados son [s1-max(s2,s3),s2-max(s1,s3),s3-max(s1,s2)].

    rocmetrics calcula las métricas de rendimiento utilizando los valores de puntuación ajustados para cada clase.

    Para un problema de clasificación binaria, puede especificar Scores como una matriz de dos columnas o como un vector columna. Utilizar una matriz de dos columnas es la opción más sencilla, ya que la función predict de un objeto de clasificación devuelve puntuaciones de clasificación como una matriz, que se puede pasar a rocmetrics. Si pasa las puntuaciones como una matriz de dos columnas, rocmetrics ajusta las puntuaciones del mismo modo que ajusta las puntuaciones para la clasificación multiclase y calcula las métricas de rendimiento para ambas clases. Puede utilizar los valores métricos de una de las dos clases para evaluar el problema de clasificación binaria. Los valores métricos para una clase devueltos por rocmetrics cuando se pasa una matriz de dos columnas son equivalentes a los valores métricos devueltos por rocmetrics cuando se especifican puntuaciones de clasificación para la clase como un vector columna.

    Funcionalidad alternativa

    • Puede utilizar la función plot para crear la curva ROC media. La función devuelve un objeto ROCCurve que contiene las propiedades XData, YData, Thresholds y AUC, que se corresponden con los argumentos de salida FPR, TPR, Thresholds y AUC de la función average, respectivamente. Para ver un ejemplo, consulte Plot Average ROC Curve for Multiclass Classifier.

    Referencias

    [1] Sebastiani, Fabrizio. "Machine Learning in Automated Text Categorization." ACM Computing Surveys 34, no. 1 (March 2002): 1–47.

    Historial de versiones

    Introducido en R2022a