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
[
calcula las medias de las métricas de rendimiento almacenadas en el objeto FPR
,TPR
,Thresholds
,AUC
] = average(rocObj
,type
)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
Encontrar la curva ROC media
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
rocObj
— Rendimiento de la clasificación de evaluación de objetos
objeto rocmetrics
Rendimiento de la clasificación de evaluación de objetos, especificado como un objeto rocmetrics
.
type
— Método de promediado
"micro"
| "macro"
| "weighted"
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 propiedadPrior
derocObj
) 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
FPR
— Tasas medias de falsos positivos
vector numérico
Tasas medias de falsos positivos, devueltas como un vector numérico.
TPR
— Tasas medias de verdaderos positivos
vector numérico
Tasas medias de verdaderos positivos, devueltas como un vector numérico.
AUC
— Área bajo la curva ROC media
escalar numérico
Área bajo la curva ROC media compuesta por FPR
y TPR
, devuelta como un escalar numérico.
Más acerca de
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 negativosTasa 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:
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
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 objetoROCCurve
que contiene las propiedadesXData
,YData
,Thresholds
yAUC
, que se corresponden con los argumentos de salidaFPR
,TPR
,Thresholds
yAUC
de la funciónaverage
, 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
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)