Validación cruzada: K-fold vs submuestreo aleatorio repetido

10

Me pregunto qué tipo de validación cruzada de modelo elegir para el problema de clasificación: K-fold o submuestreo aleatorio (muestreo de arranque).

Mi mejor conjetura es usar 2/3 del conjunto de datos (que es ~ 1000 artículos) para entrenamiento y 1/3 para validación.

En este caso, K-fold solo da tres iteraciones (pliegues), lo que no es suficiente para ver un error promedio estable.

Por otro lado, no me gusta la función de submuestreo aleatorio: que algunos elementos nunca se seleccionarán para capacitación / validación, y algunos se usarán más de una vez.

Algoritmos de clasificación utilizados: bosque aleatorio y regresión logística.

IharS
fuente
1
Supongo que una pregunta previa es: ¿esta selección no depende del algoritmo (principalmente su comportamiento) que se evalúa?
Rubens
1
@Rubens, he actualizado la pregunta: estoy interesado en RF y regresión logística
IharS

Respuestas:

7

Si tiene una cantidad adecuada de muestras y desea utilizar todos los datos, entonces la validación cruzada de k-fold es el camino a seguir. Tener ~ 1.500 parece mucho, pero si es adecuado para la validación cruzada de k-fold también depende de la dimensionalidad de los datos (número de atributos y número de valores de atributos). Por ejemplo, si cada observación tiene 100 atributos, entonces 1,500 observaciones son bajas.

Otra posible desventaja de la validación cruzada de k-fold es la posibilidad de un valor atípico extremo extremo que sesgue los resultados. Por ejemplo, si tiene un valor atípico extremo que puede sesgar en gran medida su clasificador, entonces, en una validación cruzada de 10 veces, 9 de las 10 particiones se verán afectadas (aunque para bosques aleatorios, no creo que tenga ese problema )

El submuestreo aleatorio (p. Ej., El muestreo bootstrap) es preferible cuando está submuestreado o cuando tiene la situación anterior, donde no desea que cada observación aparezca en pliegues k-1.

bogatron
fuente
4

Supongo que dices que quieres usar la validación cruzada triple porque sabes algo sobre tus datos (¿que usar k = 10 causaría un sobreajuste? Tengo curiosidad por tu razonamiento). No estoy seguro de que lo sepas, si no, simplemente puedes usar una k más grande.

Si todavía piensa que no puede usar la validación cruzada estándar de k-fold, entonces podría modificar un poco el algoritmo: digamos que divide los datos en 30 pliegues y cada vez usa 20 para entrenamiento y 10 para evaluación (y luego subir) un pliegue y use el primero y el último 9 como evaluación y el resto como entrenamiento). Esto significa que puede usar todos sus datos.

Cuando uso la validación cruzada de k-fold, generalmente ejecuto el proceso varias veces con una asignación al azar diferente para asegurarme de que tengo datos suficientes, si no lo hace, verá diferentes rendimientos dependiendo de la asignación al azar. En tales casos, sugeriría un muestreo. El truco es hacerlo con la frecuencia suficiente.

Rhand
fuente