Embora o AN6U5 tenha dado uma resposta muito boa, eu gostaria de acrescentar alguns pontos para referência futura. Ao considerar One Hot Encoding (OHE) e Label Encoding , devemos tentar entender qual modelo você está tentando construir. Nomeadamente, as duas categorias de modelo que consideraremos são:
- Modelos baseados em árvores : árvores de decisão reforçadas por gradiente e florestas aleatórias.
- Modelos Não Baseados em Árvore : Linear, kNN ou Rede Neural.
Vamos considerar quando aplicar OHE e quando aplicar Label Encoding ao criar modelos baseados em árvore.
Aplicamos OHE quando:
- Quando os valores que estão próximos um do outro na codificação do rótulo correspondem aos valores de destino que não estão próximos (dados não lineares).
- Quando o recurso categórico não é ordinal (cachorro, gato, rato).
Aplicamos a codificação de etiquetas quando:
- O recurso categórico é ordinal (Jr. kg, Sr. kg, escola primária, ensino médio, etc.).
- Quando podemos criar um codificador de etiqueta que atribua etiquetas fechadas a categorias semelhantes : Isso leva a menos vazamentos na trança, reduzindo o tempo de execução.
- Quando o número de recursos categóricos no conjunto de dados é enorme: a codificação de um recurso quente com um grande número de valores pode levar a (1) alto consumo de memória e (2) o caso em que recursos não categóricos raramente são usados pelo modelo. Você pode lidar com o 1º caso se empregar matrizes esparsas. O segundo caso pode ocorrer se você construir uma árvore usando apenas um subconjunto de recursos. Por exemplo, se você tiver 9 recursos numéricos e 1 categórico com 100 valores exclusivos e codificou esse recurso categórico uma vez, obterá 109 recursos. Se uma árvore for construída com apenas um subconjunto de recursos, os 9 recursos numéricos iniciais raramente serão usados. Nesse caso, você pode aumentar o tamanho do controle de parâmetro desse subconjunto. No xgboost, ele é chamado colsample_bytree, no Random Forest max_features do sklearn.
Caso deseje continuar com o OHE, como sugerido por @ AN6U5, convém combinar o PCA com o OHE.
Vamos considerar quando aplicar a OHE e a codificação de etiquetas ao criar modelos não baseados em árvore.
Para aplicar a codificação de etiqueta, a dependência entre o recurso e o destino deve ser linear para que a codificação de etiqueta seja utilizada efetivamente.
Da mesma forma, caso a dependência seja não linear, convém usar o OHE para o mesmo.
Nota: Algumas das explicações foram mencionadas em Como vencer um concurso de ciência de dados da Coursera.