Estoy comparando diferentes modelos de clasificación y para un modelo dado (digamos regresión logística), cada vez que lo ejecuto, obviamente produce un valor ligeramente diferente para la Precisión y para el AUC. Como quiero comparar los distintos modelos, quiero una métrica bastante estable, así que he pensado en ejecutar cada algoritmo varias veces y sacar la media de la precisión y del AUC. ¿Es esto algo que se haga habitualmente? Si no es así, ¿tiene sentido hacerlo?
Respuestas
¿Demasiados anuncios?Lo primero que hay que hacer es asegurarse de que no se está sobreajustando. Si no hay una señal tan fuerte, entonces promediar las métricas de rendimiento que has mencionado tiene sentido. Además, la elaboración de intervalos de confianza básicos (o intervalos +-estándar) a partir de diferentes ejecuciones del mismo algoritmo es una práctica habitual en los trabajos de investigación.
Calcularlo varias veces puede ser más útil para algoritmos específicos. Pongamos un ejemplo: mientras que una regresión hará lo mismo si la usas exactamente con los mismos datos (es decir, si divides tu entrenamiento y prueba con un estado aleatorio para tener cada vez exactamente las mismas filas), un algoritmo como el bosque aleatorio tomará aleatoriamente algunos atributos para hacer el bosque (imagina que tienes 200 atributos, y haces un RandomForest con 5 árboles de 10 atributos, el algoritmo creará 5 árboles cada uno basado en 10 atributos aleatorios de tus 200. Es fácil de entender que, dado que el modelo lo hace en cada ajuste, el resultado puede ser muy diferente). Se puede entender fácilmente que, dado que el modelo lo hace en cada ajuste, el resultado puede ser muy diferente). Te sugiero que mires la teoría detrás del algoritmo para saber si tienes que hacer varias veces la misma prueba, o si el resultado será siempre el mismo.
Además, si retomamos el ejemplo de RandomForest, se pueden producir más árboles, con más características, lo que llevará tiempo pero dará resultados más fiables (sólo hay que tener cuidado con el sobreajuste).
Por último, para comprobar su sobreajuste: obtenga el AUC normal y otro AUC basado en predicciones sobre X_train (es decir, sobre el mismo conjunto que utilizó para ajustar su algoritmo). Si los valores están muy alejados entre sí, es posible que esté sobreajustado (su algoritmo no aprendió una tendencia, sino los resultados exactos en el conjunto de entrenamiento, e intenta aplicarlo en la prueba).