Depende de la distribución de sus clases y la determinación solo puede hacerse con el conocimiento del dominio del problema en cuestión. Puede hacer las siguientes preguntas:
- ¿Hay dos clases que son muy similares y que el alumno posee información suficiente para distinguir entre ellos?
- ¿Hay una gran diferencia en las probabilidades previas de cada clase?
Si es así, probablemente deba redistribuir las clases.
En mi experiencia, no hay daño en la redistribución de las clases, pero no siempre es necesario.
Realmente depende de la distribución de sus clases. En el caso de detección de fraude o intrusión, la distribución de la clase de predicción puede ser inferior al 1%. En este caso, debe distribuir las clases de manera uniforme en el conjunto de capacitación si desea que el clasificador aprenda las diferencias entre cada clase. De lo contrario, producirá un clasificador que clasifica correctamente más del 99% de los casos sin identificar correctamente un caso de fraude, que es el objetivo de crear un clasificador para empezar.
Una vez que tenga un conjunto de clases distribuidas uniformemente, puede utilizar cualquier técnica, como k-fold, para realizar la capacitación real.
Otro ejemplo donde las distribuciones de clases deben ajustarse, pero no necesariamente en un número igual de registros para cada una, es el caso de determinar letras mayúsculas del alfabeto a partir de sus formas.
Si toma una distribución de letras de uso común en el idioma inglés para entrenar al clasificador, casi no habrá casos, si los hubiera, de la letra Q
. Por otro lado, la letra O
es muy común. Si no redistribuye las clases para permitir el mismo número de Q
y O
, el clasificador no tiene suficiente información para distinguir alguna vez un Q
. Necesita alimentarlo con suficiente información (es decir, más Q
s) para que pueda determinar que Q
y O
son de hecho letras diferentes.
He leído sobre k-fold, provisto por @fyr. Estoy confundido. Después de tener los juegos de entrenamiento distribuidos uniformemente por clase, ¿qué conjuntos proporciono para entrenar al clasificador para el uso de clasificación real? Mi anterior es incluso creo: como c1: 90% y c2: 10%. – goh
Crea un conjunto de datos completamente nuevo con clases distribuidas uniformemente. A continuación, utilice estos datos nuevos y particínelos en capacitación, validación cruzada y prueba según sea necesario. k-fold es una forma muy común de dividir los datos en entrenamiento y validación cruzada. –