Tengo un conjunto de datos que contiene como máximo 150 ejemplos (divididos en entrenamiento y prueba), con muchas características (más de 1000). Necesito comparar clasificadores y métodos de selección de características que funcionan bien en los datos. Entonces, estoy usando tres métodos de clasificación (J48, NB, SVM) y 2 métodos de selección de características (CFS, WrapperSubset) con diferentes métodos de búsqueda (Greedy, BestFirst).
Al comparar, estoy viendo la precisión del entrenamiento (plegado cruzado 5 veces) y la precisión de la prueba.
Aquí está uno de los resultados de J48 y CFS-BestFirst:
{"precisionTraining": 95.83, "precisionTest": 98.21}
Muchos resultados son así, y en el SVM hay muchos resultados que indican que la precisión de la prueba es mucho mayor que el entrenamiento (entrenamiento: 60%, prueba: 98%)
¿Cómo puedo interpretar de manera significativa este tipo de resultados? Si fuera más bajo, diría que es demasiado ajustado. ¿Hay algo que decir sobre el sesgo y la varianza en este caso al observar todos los resultados? ¿Qué puedo hacer para que esta clasificación sea significativa, como volver a seleccionar los conjuntos de entrenamiento y prueba o simplemente usar la validación cruzada en todos los datos?
Tengo 73 entrenamientos y 58 instancias de prueba. Algunas respuestas no tenían esta información cuando fueron publicadas.
La precisión en un conjunto de entrenamiento no tiene sentido en el aprendizaje automático. Ignoralo.
fuente
Hay algunos problemas serios con la forma en que lo ha hecho. En primer lugar, la división de datos no es confiable a menos que el tamaño total de la muestra sea enorme. Obtendría resultados diferentes si se divide de nuevo. Entre otras cosas, no está considerando intervalos de confianza en las estimaciones de precisión. En segundo lugar, la validación cruzada de 5 veces no es lo suficientemente precisa. Puede ser necesario repetirlo 100 veces para lograr la precisión adecuada. Tercero, ha elegido como puntaje de precisión una regla de puntaje impropia discontinua (proporción clasificada correctamente). Dicha regla de puntuación incorrecta conducirá a la selección del modelo incorrecto.
fuente
Suponiendo que no hay fallas en la implementación de los algoritmos, veamos el problema.
Imagine tomar un pequeño subconjunto de sus datos de entrenamiento y ejecutar su algoritmo de aprendizaje en él. Obviamente lo hará muy bien. Siempre es posible extraer un subconjunto que logre una precisión cercana al 98%.
¿Ahora sus datos de prueba son muy similares a este subconjunto? En caso afirmativo, debe ir y recopilar más datos, con suerte un poco más variado. Desde el punto de vista de Bias-Variance, diría que su varianza es alta.
fuente
Tiene demasiadas funciones (1000) para la cantidad de muestras que tiene (150). Necesita aumentar sus muestras o disminuir su número de funciones.
Dicen generalmente número de características ^ 2 = número de muestras necesarias. Entonces necesita al menos millones de muestras.
fuente
Eso puede suceder usando cualquier algoritmo ML e incluso clasificadores personalizados. Pruebe diferentes esquemas de validación cruzada k-fold, es decir, 2 o 10 veces también. Con una k más alta, se espera que se reduzca el error de prueba.
fuente