Comprobar si la mejora de precisión es significativa

14

Supongamos que tengo un algoritmo que clasifica las cosas en dos categorías. Puedo medir la precisión del algoritmo en digamos 1000 cosas de prueba; supongamos que el 80% de las cosas se clasifican correctamente.

Supongamos que modifico el algoritmo de alguna manera para que el 81% de las cosas se clasifiquen correctamente.

¿Pueden las estadísticas decirme algo sobre si mi mejora en el algoritmo es estadísticamente significativa? ¿Es relevante el concepto de significación estadística en esta situación? Indíqueme en la dirección de algunos recursos que podrían ser relevantes.

Muchas gracias.

Ben
fuente

Respuestas:

3

En resumen, si. La significación estadística es relevante aquí. Está viendo el error de clasificación (o, como lo indica aquí, precisión = 1- error de clasificación). Si compara los clasificadores en diferentes 1000 muestras, simplemente puede usar la prueba binomial, si son las mismas 1000 muestras necesita usar la prueba de McNemar. Tenga en cuenta que simplemente probar el error de clasificación de esta manera no es óptimo porque asume que el error de clasificación es independiente de la clase verdadera o que la proporción de las clases verdaderas es la misma en todas sus aplicaciones potenciales.

Esto significa que debe analizar medidas como la tasa de verdadero positivo, la tasa de falso positivo o el AUC. Qué medida usar y cómo probarlo depende de la salida de su clasificador. Puede ser solo una clase o puede ser un número continuo que da la probabilidad de pertenecer a una clase determinada.

Erik
fuente
Eso es genial gracias. De hecho, estoy analizando el análisis de sentimientos de los documentos de texto, clasificándolos en "positivo" o "negativo", hay mucho trabajo publicado en el que las personas alteran la selección de características de alguna manera sutil, con una mejora de precisión del 1%, y escribo Un artículo sobre esto. Me pregunto si en muchos de estos casos los autores no han podido proporcionar evidencia de una mejora estadísticamente significativa en la precisión de la clasificación.
Ben
La prueba de McNemar le dice si los modelos son significativamente diferentes, lo que no siempre implica que la diferencia de precisión sea significativa (los diferentes modelos pueden tener la misma precisión). Para verificar la importancia del aumento de precisión directamente, querrá hacer muchas estimaciones de precisión para mapear las distribuciones de precisiones y, por lo tanto, estimar si son diferentes. Esto significaría entrenar a tus modelos varias veces.
drevicko
3

Como dijo Erik, sí, puede verificar esto para obtener significación estadística. Sin embargo, piense por un momento exactamente qué es lo que desea verificar. Creo que una pregunta más interesante podría ser preguntar qué tan probable es que el algoritmo supuestamente "mejorado" sea mejor (o significativamente mejor) que el original, dados los datos de una diferencia observada del 1%. Hacer preguntas en términos de "significación estadística" tiende a conducir al tipo opuesto de preguntas: dado que los dos algoritmos son iguales, ¿hay menos de un 5% de probabilidad de observar una mejora de al menos esto?

Para mí, la última pregunta es al revés, pero de alguna manera se ha convertido en el estándar. Puede consultar Wikipedia sobre la controversia en las pruebas de hipótesis estadísticas . Posteriormente, podría estar interesado en la inferencia bayesiana . Si realmente desea entrar en el análisis de datos bayesianos, puede consultar el "Análisis de datos bayesianos" de Gelman et al. O consultar esta pregunta .

Michael McGowan
fuente
2

Aplicando la respuesta de Erik a la de Michael :

Puede hacer el mismo tipo de pensamiento al que se refiere Erik al elegir la medida de rendimiento.

Encuentro útil referirme a diferentes medidas de este tipo según las preguntas que responden (aquí en el lenguaje de diagnóstico médico con el que estoy más familiarizado, pero tal vez pueda simplemente reemplazar al paciente por texto y la enfermedad por correo no deseado ;-)):

  • Sensibilidad: dado que el paciente realmente tiene la enfermedad, ¿qué posibilidades hay de que el clasificador se dé cuenta de eso?

  • Especificidad: dado que el paciente realmente no tiene la enfermedad, ¿qué posibilidades hay de que el clasificador se dé cuenta de eso?

  • Valor predictivo positivo: dado que el clasificador afirma que el paciente está enfermo, ¿qué tan probable es que el paciente realmente tenga la enfermedad?

  • Valor predictivo negativo: dado que el clasificador afirma que el paciente no está enfermo, ¿qué posibilidades hay de que el paciente realmente no tenga la enfermedad?

Como puede ver, los valores predictivos son lo que realmente interesan a los médicos y pacientes. Sin embargo, casi todos caracterizan su clasificador por su sensibilidad y especificidad. La razón es que los valores predictivos deben tener en cuenta la prevalencia de la enfermedad, y eso puede variar enormemente (¡órdenes de magnitud!) Para diferentes tipos de pacientes.

Más sobre el tema para su pregunta:

Apuesto a que tienes razón en preocuparte.

Tomando los dos escenarios de Erik en un ejemplo:

Aquí están las muestras de prueba independientes:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

(tenga en cuenta que esta prueba fue bilateral, suponiendo que los dos clasificadores se hubieran publicado incluso si los resultados hubieran sido al revés ...)

Esta es la mejor situación posible: prueba emparejada, y el nuevo clasificador es el adecuado para todas las muestras, el anterior también, más 10 más:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

(el valor p se mantiene por debajo del mágico 0.05 siempre que los dos clasificadores pronostiquen de manera diferente no más de 10 muestras de las 1000 ).

Incluso si los valores p son la respuesta correcta a la pregunta incorrecta, hay indicios de que es un lugar apretado.

Sin embargo, teniendo en cuenta la práctica científica habitual, es decir, se probó un número desconocido (inédito) de nuevas características, y solo se publicó la que funcionó un poco mejor, el lugar se vuelve aún más estrecho. Y luego, el clasificador del 80% puede ser el sucesor de un clasificador del 79% ...

Si te gusta leer alemán, hay algunos libros muy bonitos de Beck-Bornhold y Dubben. Si no recuerdo mal , Mit an Wahrscheinlichkeit grenzender Sicherheit tiene una muy buena discusión sobre estos problemas. (No sé si hay una edición en inglés, una traducción bastante literal del título es "Con una certeza cercana a la probabilidad")

cbeleites apoya a Monica
fuente
1

Desaconsejaría mucho el uso de cualquier regla de puntaje impropia discontinua (un puntaje de precisión como sensibilidad, especificidad, proporción clasificada correcta que cuando se optimice resultados en un modelo falso) y en su lugar use pruebas de razón de probabilidad o pruebas F parciales para el valor agregado del nuevo variables

Una de las varias formas de ver los problemas con la proporción clasificada correctamente es que si la proporción general en una categoría es 0.9, estará correcto 0.9 de las veces ignorando los datos y clasificando cada observación como perteneciente a esa categoría.

Frank Harrell
fuente
2
Sí, a veces la precisión es una métrica pésima de usar, y a veces es un método excelente; depende. Sin embargo, eso parece ser completamente tangencial a lo que se trata la pregunta. La pregunta se trata de determinar si un nuevo algoritmo es mejor de acuerdo con una métrica conocida, no acerca de elegir una métrica en primer lugar.
Michael McGowan
Creo que necesitamos describir cuidadosamente los objetivos y las funciones de utilidad, y si no queremos proporcionar funciones de utilidad, debemos resolver la función de utilidad que se asume efectivamente cuando se realiza la clasificación.
Frank Harrell
¿Alguna razón para tantos votos negativos anónimos?
chl
2
@chl Pensé que había explicado que había votado negativamente por no responder realmente a la pregunta que me hicieron.
Michael McGowan
@MichaelMcGowan Bastante justo.
chl