Atualização de 2018!
Você pode criar um espaço de incorporação (vetor denso) para suas variáveis categóricas. Muitos de vocês estão familiarizados com word2vec e fastext, que incorporam palavras em um espaço vetorial denso significativo. A mesma idéia aqui - suas variáveis categóricas serão mapeadas para um vetor com algum significado.
Do artigo de Guo / Berkhahn :
A incorporação de entidade não apenas reduz o uso de memória e acelera as redes neurais em comparação com a codificação one-hot, mas, mais importante, mapeando valores semelhantes próximos um do outro no espaço de incorporação, revela as propriedades intrínsecas das variáveis categóricas. Nós o aplicamos com sucesso em uma competição recente do Kaggle e conseguimos alcançar a terceira posição com recursos relativamente simples.
Os autores descobriram que representar variáveis categóricas dessa maneira melhorou a eficácia de todos os algoritmos de aprendizado de máquina testados, incluindo floresta aleatória.
O melhor exemplo pode ser a aplicação da técnica do Pinterest para agrupar Pins relacionados:
O pessoal da fastai implementou casamentos categóricos e criou um post muito bom com o caderno de demonstração complementar .
Detalhes adicionais e explicação
Uma rede neural é usada para criar os embeddings, ou seja, atribuir um vetor a cada valor categórico. Depois de ter os vetores, você poderá usá-los em qualquer modelo que aceite valores numéricos. Cada componente do vetor se torna uma variável de entrada. Por exemplo, se você usou vetores 3D para incorporar sua lista categórica de cores, poderá obter algo como: vermelho = (0, 1,5, -2,3), azul = (1, 1, 0) etc. Você usaria três insira variáveis em sua floresta aleatória correspondentes aos três componentes. Para coisas vermelhas, c1 = 0, c2 = 1,5 e c3 = -2,3. Para coisas azuis, c1 = 1, c2 = 1 e c3 = 0.
Na verdade, você não precisa usar uma rede neural para criar embeddings (embora eu não recomendo evitar a técnica). Você é livre para criar seus próprios casamentos à mão ou por outros meios, quando possível. Alguns exemplos:
- Mapeie cores para vetores RGB.
- Mapeie localizações para vetores latentes / longos.
- Em um modelo político dos EUA, mapeie as cidades para alguns componentes vetoriais que representam alinhamento esquerda / direita, carga tributária etc.