¿Es necesario el muestreo estratificado (bosque aleatorio, Python)?

14

Utilizo Python para ejecutar un modelo de bosque aleatorio en mi conjunto de datos desequilibrado (la variable de destino era una clase binaria). Al dividir el conjunto de datos de entrenamiento y prueba, luché si usar muestreo estratificado (como el código que se muestra) o no. Hasta ahora, observé en mi proyecto que el caso estratificado conduciría a un mayor rendimiento del modelo. Pero creo que si usaré mi modelo para predecir los nuevos casos que probablemente diferirían en la distribución de la clase objetivo con mi conjunto de datos actual. Así que me incliné por aflojar esta restricción y usar la división no estratificada. ¿Alguien puede dar consejos para aclarar este punto?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)
LUSAQX
fuente

Respuestas:

13

Si el número de valores pertenecientes a cada clase no está equilibrado, usar muestreo estratificado es algo bueno. Básicamente, le está pidiendo al modelo que tome el conjunto de entrenamiento y prueba de manera que la proporción de clase sea la misma que la del conjunto de datos completo, que es lo correcto . Si sus clases son equilibradas, entonces una combinación aleatoria (no se necesita estratificación aquí) básicamente puede garantizar una prueba justa y la división del tren.

Ahora su modelo será capaz o al menos lo suficientemente equipado para predecir la clase superada en número (clase con menos puntos en número). Es por eso que en lugar de solo calcular la Precisión, se le han dado otras métricas como Sensibilidad y Especificidad . Vigila estos, estos son los guardianes.

Espero que esto ayude.

Kiritee Gak
fuente