1 votos

submuestreo en el aprendizaje automático

Tengo un conjunto de datos desequilibrado y quiero realizar un submuestreo. Tengo 2000 instancias de las cuales 150 son positivas y 1850 negativas. He realizado un submuestreo, es decir, he seleccionado aleatoriamente 150 casos negativos. Ahora tengo un total de 300 casos. Después de aplicar los clasificadores de aprendizaje automático a estos 300 casos, obtengo un 79% de precisión.

Por favor, indíqueme si estos resultados son válidos y aceptables.

Gracias.

4voto

kemdo Puntos 101

Parece que has entrenado y probado con el mismo conjunto (los 300 ejemplos que elegiste). Por lo general, esto no se recomienda, y los resultados no significan mucho.

Asegúrese de reservar alrededor del 10% de los datos, para las pruebas. Así, podrá entrenar en su conjunto de entrenamiento y probar en el conjunto de prueba, y obtener una evaluación más precisa de su error/precisión.

Tenga en cuenta que si su conjunto de pruebas tiene la misma distribución que sus datos (1 positivo y 12 negativos), un clasificador "estúpido" que siempre clasifica "no" obtendrá un 92,5% de precisión. Entonces, una precisión del 79% sería mala.

Mira otras medidas como roc-auc para evaluar mejor su clasificador, en casos desequilibrados.

EDITAR: Como se menciona en los comentarios, roc-auc podría no ser la mejor opción. AUC-PR podría ser mejor en conjuntos de datos muy sesgados (como el suyo). También me gusta f1-macro, que es una media no ponderada de las puntuaciones f1 de ambas etiquetas.

1voto

Johnny Puntos 151

Hay básicamente dos posibles razones por las que puede querer submuestrear: para la formación o para la prueba.

En primer lugar, al entrenar su clasificador, si una clase domina los datos, entonces la función de coste estará dominada por lo bien que el clasificador predice esa clase en particular. Por tanto, los parámetros del clasificador se optimizarán en mayor medida para detectar esa clase, y no se "preocupará" tanto por rechazar correctamente esa clase porque hay menos casos en los datos en los que eso sea un problema. En otras palabras, si consideramos que la clase más frecuente es la "positiva", el clasificador se está inclinando hacia una clase más alta. tasa de aciertos y falsas alarmas, lo que puede permitirse porque el número de posibles falsas alarmas es baja dada la prevalencia de la clase negativa.

Sin embargo, este problema tiene una solución alternativa que no requiere tirar ningún dato de entrenamiento: ajustar la función de coste. El problema sólo se produce si se ponderan todos los errores por igual, es decir, si se le dice al clasificador que intente obtener el menor número de errores posible en todos los datos. Así que en lugar de intentar minimizar el número de errores, puede decirle al clasificador que minimice la frecuencia de errores, promediados en las dos clases. Esto significa que el peso total de los errores en la clase rara es igual al peso total de los errores en la clase común, por lo que ya no hay ninguna ventaja para que el clasificador responda siempre (o mayoritariamente) a la clase más frecuente. Esto debe eliminar cualquier sesgo en el aprendizaje, es decir, el clasificador ya no debería aprender estrategias triviales basadas en la frecuencia de las clases y no en los patrones reales de los datos.

Al probar el clasificador, el problema es que no estás seguro de cuál es el nivel de azar de los errores, porque hay clasificadores triviales "tramposos" que podrían obtener tasas de error muy bajas simplemente respondiendo siempre (o mayoritariamente) a la clase más prevalente. La solución en este caso es esencialmente la misma: no echar todos los errores en el mismo saco, sino mirarlos por separado para cada clase. Un clasificador tonto que siempre da la misma respuesta predecirá la clase más frecuente correctamente el 100% de las veces, pero acertará el 0% de la otra clase, lo que equivale al conocido nivel de azar binario del 50%. Cualquier clasificador que obtenga una puntuación (significativamente) superior a esa cifra debe recuperar alguna información real de los datos. Hay formas más sofisticadas de ver esto, pero esa es esencialmente la intuición.

Así que, en cualquier caso, no creo que el submuestreo sea la mejor respuesta, porque es tirar los datos, y hay otras formas de restablecer el equilibrio de clases en su análisis que utilizan todos los datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X