Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Curvas de rendimiento

Introducción a las curvas de rendimiento

Después de un algoritmo de clasificación como o ha entrenado en datos, es posible que desee examinar el rendimiento del algoritmo en un DataSet de prueba específico.ClassificationNaiveBayesTreeBagger Una forma común de hacerlo sería calcular una medida bruta de rendimiento, como la pérdida o precisión cuadrática, promediada en todo el DataSet de prueba.

¿Qué son las curvas ROC?

Es posible que desee inspeccionar el rendimiento del clasificador más de cerca, por ejemplo, trazando una curva de características operativas del receptor (ROC). Por definición, una curva ROC [1, 2] muestra una tasa positiva real frente a una tasa de falsos positivos (equivalente, sensibilidad versus 1 – especificidad) para diferentes umbrales de la salida del clasificador. Puede utilizarlo, por ejemplo, para encontrar el umbral que maximiza la precisión de la clasificación o para evaluar, en términos más generales, cómo funciona el clasificador en las regiones de alta sensibilidad y alta especificidad.

Evalúe el rendimiento del clasificador mediante perfcurve

calcula las medidas para una gráfica del rendimiento del clasificador.perfcurve Puede utilizar esta utilidad para evaluar el rendimiento del clasificador en los datos de prueba después de entrenar el clasificador. Varias medidas, como el error medio cuadrado, el error de clasificación o la pérdida exponencial, pueden resumir el poder predictivo de un clasificador en un solo número. Sin embargo, una curva de rendimiento ofrece más información, ya que le permite explorar el rendimiento del clasificador en un rango de umbrales en su salida.

Puede usar con cualquier clasificador o, más ampliamente, con cualquier método que devuelva una puntuación numérica para una instancia de datos de entrada.perfcurve Por Convención adoptada aquí,

  • Una puntuación alta devuelta por un clasificador para una instancia determinada significa que la instancia es probable de la clase positiva.

  • Una puntuación baja significa que la instancia es probable de las clases negativas.

Para algunos clasificadores, puede interpretar la puntuación como la probabilidad posterior de observar una instancia de la clase positiva en el punto.X Un ejemplo de esta puntuación es la fracción de observaciones positivas en una hoja de un árbol de decisión. En este caso, las puntuaciones caen en el rango de 0 a 1 y las puntuaciones de las clases positivas y negativas suman a la unidad. Otros métodos pueden devolver puntuaciones que oscilan entre menos y más infinito, sin ninguna asignación obvia de la puntuación a la probabilidad de clase posterior.

no impone ningún requisito en el rango de puntuación de entrada.perfcurve Debido a esta falta de normalización, puede usar para procesar las puntuaciones devueltas por cualquier método de clasificación, regresión o ajuste. no hace suposiciones sobre la naturaleza de las puntuaciones de entrada o las relaciones entre las puntuaciones de las distintas clases.perfcurveperfcurve Como ejemplo, considere un problema con tres clases y, y suponga que las puntuaciones devueltas por algún clasificador para dos instancias son las siguientes:ABC

 ABC
instancia 10,40,50,1
instancia 20,40,10,5

Si desea calcular una curva de rendimiento para la separación de clases y, si se omite, debe abordar la ambigüedad en la selección de más.ABCAB Puede optar por usar la relación de puntuación, o la diferencia de puntuación; esta elección podría depender de la naturaleza de estas puntuaciones y de su normalización. siempre toma una puntuación por instancia.s(A)/s(B)s(A)-s(B)perfcurve Si sólo se suministran puntuaciones para la clase, no se distingue entre las observaciones 1 y 2.Aperfcurve La curva de rendimiento en este caso puede no ser óptima.

está diseñado para su uso con clasificadores que devuelven puntuaciones, no los que devuelven solo las clases previstas.perfcurve Como un contraejemplo, considere un árbol de decisión que devuelva solo etiquetas de clasificación duras, 0 o 1, para los datos con dos clases. En este caso, la curva de rendimiento se reduce a un solo punto porque las instancias clasificadas se pueden dividir en categorías positivas y negativas de una sola manera.

Para la entrada, toma verdaderas etiquetas de clase para algunos datos y puntuaciones asignadas por un clasificador a estos datos.perfcurve De forma predeterminada, esta utilidad calcula una curva de características operativas del receptor (ROC) y devuelve valores de 1 – especificidad, o tasa de falsos positivos, para y sensibilidad, o tasa positiva real, para.XY Puede elegir otros criterios para y seleccionando uno de varios criterios proporcionados o especificando un criterio arbitrario a través de una función anónima.XY Puede visualizar la curva de rendimiento calculada utilizando.plot(X,Y)

puede calcular valores para varios criterios para trazar en el eje o en el.perfcurvexy Todos estos criterios se describen mediante una matriz de confusión de 2 por 2, una matriz de costos de 2 por 2 y un vector de 2 por 1 de escalas aplicadas a los recuentos de clases.

La matriz,, se define comoconfusionC

(TPFNFPTN)

Dónde

  • significa "positivo".P

  • significa "negativo".N

  • significa "verdadero".T

  • significa "falso".F

Por ejemplo, la primera fila de la matriz de confusión define cómo el clasificador identifica las instancias de la clase positiva: es el recuento de instancias positivas identificadas correctamente y es el recuento de instancias positivas erróneamente identificados como negativos.C(1,1)C(1,2)

La matriz de costes define el coste de clasificación errónea para cada categoría:

(Cost(P|P)Cost(N|P)Cost(P|N)Cost(N|N))

donde está el costo de asignar una instancia de clase a clase.Cost(I|J)JI Usualmente para.Cost(I|J)=0I=J Por flexibilidad, le permite especificar también los costos distintos de cero para la clasificación correcta.perfcurve

Las dos escalas incluyen información previa sobre las probabilidades de clase. calcula estas escalas tomando y normalizando la suma a 1. y son el número total de instancias en la clase positiva y negativa, respectivamente.perfcurvescale(P)=prior(P)*Nscale(N)=prior(N)*Pscale(P)+scale(N)P=TP+FNN=TN+FP A continuación, la función aplica las escalas como factores multiplicativos a los recuentos de la clase correspondiente: multiplica los recuentos de la clase positiva por y cuenta de la clase negativa.perfcurvescale(P)scale(N) Considere, por ejemplo, el cálculo del valor predictivo positivo,. recuentos provienen de la clase positiva y los recuentos provienen de la clase negativa.PPV = TP/(TP+FP)TPFP Por lo tanto, es necesario escalar por y por, y la fórmula modificada para con las probabilidades anteriores tomadas en cuenta es ahora:TPscale(P)FPscale(N)PPV

PPV=scale(P)*TPscale(P)*TP+scale(N)*FP

Si todas las puntuaciones de los datos están por encima de un determinado umbral, clasifique todas las instancias como.perfcurve'positive' Esto significa que es el número total de instancias en la clase positiva y es el número total de instancias en la clase negativa.TPFP En este caso, se da simplemente por el Prior:PPV

PPV=prior(P)prior(P)+prior(N)

La función devuelve dos vectores y, de medidas de rendimiento.perfcurveXY Cada medida es una función de, y valores.confusioncostscale Puede solicitar medidas específicas por nombre o proporcionar un identificador de función para calcular una medida personalizada. La función que proporcione debe tomar, y como sus tres entradas y devolver un vector de valores de salida.confusioncostscale

El criterio debe ser una función monótono del recuento de clasificación positiva, o equivalentemente, del umbral para las puntuaciones suministradas.X Si no puede realizar una asignación uno a uno entre los valores del criterio y los umbrales de puntuación, se cierra con un mensaje de error.perfcurveX

De forma predeterminada, calcula los valores y los criterios de todos los umbrales de puntuación posibles.perfcurveXY Como alternativa, puede calcular un número reducido de valores específicos suministrados como un argumento de entrada.X En cualquier caso, para los valores solicitados, calcula los valores para y.MperfcurveM+1XY El primer valor de estos valores es especial. lo calcula estableciendo el recuento de instancias en cero y estableciendo el recuento total en la clase negativa.M+1perfcurveTPTN Este valor corresponde al umbral.'reject all' En una curva ROC estándar, esto se traduce en un punto adicional colocado en.(0,0)

Si hay valores entre las puntuaciones de entrada, puede procesarlos de una de las dos maneras siguientes:NaNperfcurve

  • Puede descartar filas con puntuaciones.NaN

  • Puede añadirlos a recuentos de clasificación falsos en la clase respectiva.

Es decir, para cualquier umbral, las instancias con puntuaciones de la clase positiva se cuentan como falso negativo (), y las instancias con puntuaciones de la clase negativa se cuentan como falso positivo ().NaNFNNaNFP En este caso, el primer valor de o se calcula estableciendo en cero y estableciendo en el recuento total menos el recuento en la clase negativa.XYTPTNNaN Para ilustrar, considere un ejemplo con dos filas en el positivo y dos filas en la clase negativa, cada par tiene una puntuación:NaN

ClasePuntuación
Negativo0,2
NegativoNaN
Positivo0,7
PositivoNaN

Si descarta filas con puntuaciones, a medida que varía el límite de puntuación, calcula las medidas de rendimiento como en la tabla siguiente.NaNperfcurve Por ejemplo, un valor límite de 0,5 corresponde a la fila intermedia donde las filas 1 y 3 se clasifican correctamente y se omiten las filas 2 y 4.

TPFNFPTN
0101
1001
1010

Si agrega filas con puntuaciones a la categoría false en sus clases respectivas, calcula las medidas de rendimiento como en la tabla siguiente.NaNperfcurve Por ejemplo, un valor límite de 0,5 corresponde a la fila intermedia donde ahora las filas 2 y 4 se cuentan como clasificadas incorrectamente. Tenga en cuenta que solo las columnas y y difieren entre estas dos tablas.FNFP

TPFNFPTN
0211
1111
1120

Para los datos con tres o más clases, toma una clase positiva y una lista de clases negativas para la entrada.perfcurve La función calcula los valores y el uso de recuentos en la clase positiva para estimar y, y el uso de recuentos en todas las clases negativas para estimar y. Opcionalmente puede calcular valores para cada clase negativa por separado y, además de, devolver una matriz de size-by-, donde es el número de elementos en o y es el número de clases negativas.XYTPFNTNFPperfcurveYYMCMXYC Puede utilizar esta funcionalidad para supervisar los componentes de la contribución de clase negativa. Por ejemplo, puede trazar recuentos en el eje y recuentos en el eje.TPXFPY En este caso, la matriz devuelta muestra cómo se divide el componente entre las clases negativas.FP

También puede utilizar para estimar los intervalos de confianza. calcula los límites de confianza mediante validación cruzada o bootstrap.perfcurveperfcurve Si proporciona matrices de celdas para y, usa la validación cruzada y trata los elementos de las matrices de celdas como pliegues de validación cruzada.labelsscoresperfcurve Si establece el parámetro de entrada en un entero positivo, genera réplicas de arranque para calcular los límites de confianza de pointwise.NBootperfcurvenboot

estima los límites de confianza mediante uno de los dos métodos siguientes:perfcurve

  • Promedio vertical (VA): estime los límites de confianza en y a valores fijos de.YTX Utilice el parámetro de entrada para utilizar este método para calcular los límites de confianza.XVals

  • Promedio de umbral (TA) — estimar los límites de confianza para y en los umbrales fijos para la puntuación de clase positiva.XY Utilice el parámetro de entrada para utilizar este método para calcular los límites de confianza.TVals

Para utilizar ponderaciones de observación en lugar de recuentos de observación, puede utilizar el parámetro en la llamada.'Weights'perfcurve Al utilizar este parámetro, para calcular o para calcular los límites de confianza mediante la validación cruzada, utiliza los pesos de observación suministrados en lugar de los recuentos de observación.XYTperfcurve Para calcular los límites de confianza mediante Bootstrap, las muestras de reemplazo utilizando sus pesos como probabilidades de muestreo multinomial.perfcurveNN

Consulte también

|