Si bien AN6U5 ha dado una muy buena respuesta, quería agregar algunos puntos para referencia futura. Al considerar One Hot Encoding (OHE) y Label Encoding , debemos tratar de comprender qué modelo está intentando construir. Es decir, las dos categorías de modelo que consideraremos son:
- Modelos basados en árboles : árboles de decisión impulsados por gradientes y bosques aleatorios.
- Modelos no basados en árboles : lineal, kNN o basado en redes neuronales.
Consideremos cuándo aplicar OHE y cuándo aplicar Label Encoding al construir modelos basados en árboles.
Aplicamos OHE cuando:
- Cuando los valores cercanos entre sí en la codificación de la etiqueta corresponden a valores objetivo que no están cerca (datos no lineales).
- Cuando la característica categórica no es ordinal (perro, gato, ratón).
Aplicamos la codificación de etiquetas cuando:
- La característica categórica es ordinal (Jr. kg, Sr. kg, primaria, secundaria, etc.).
- Cuando podemos encontrar un codificador de etiquetas que asigne etiquetas cercanas a categorías similares : esto conduce a menos derrames en el tren, lo que reduce el tiempo de ejecución.
- Cuando el número de características categóricas en el conjunto de datos es enorme: la codificación de una característica categórica con un gran número de valores puede conducir a (1) un alto consumo de memoria y (2) el caso en que el modelo rara vez utiliza características no categóricas. Puede ocuparse del primer caso si emplea matrices dispersas. El segundo caso puede ocurrir si construye un árbol utilizando solo un subconjunto de características. Por ejemplo, si tiene 9 características numéricas y 1 categórica con 100 valores únicos y codificó en caliente esa característica categórica, obtendrá 109 características. Si un árbol se construye con solo un subconjunto de características, rara vez se usarán las características numéricas iniciales 9. En este caso, puede aumentar el tamaño de control de parámetros de este subconjunto. En xgboost se llama colsample_bytree, en sklearn's Random Forest max_features.
En caso de que desee continuar con OHE, como sugirió @ AN6U5, es posible que desee combinar PCA con OHE.
Consideremos cuándo aplicar OHE y Label Encoding al construir modelos no basados en árboles.
Para aplicar la codificación de etiquetas, la dependencia entre la función y el objetivo debe ser lineal para que la codificación de etiquetas se pueda utilizar de manera efectiva.
Del mismo modo, en caso de que la dependencia no sea lineal, es posible que desee utilizar OHE para lo mismo.
Nota: Parte de la explicación se ha mencionado en Cómo ganar una competencia de ciencia de datos de Coursera.