Problemas com codificação one-hot vs. codificação dummy


11

Estou ciente do fato de que variáveis ​​categóricas com níveis k devem ser codificadas com variáveis ​​k-1 na codificação dummy (da mesma forma para variáveis ​​categóricas com valores múltiplos). Eu queria saber quanto de um problema uma codificação one-hot (ou seja, usando variáveis ​​k) em vez de codificação fictícia para diferentes métodos de regressão, principalmente regressão linear, regressão linear penalizada (Lasso, Ridge, ElasticNet), baseada em árvores (florestas aleatórias , máquinas de aumento de gradiente).

Sei que na regressão linear ocorrem problemas com múltiplas colinearidades (embora na prática eu tenha ajustado a regressão linear usando OHE sem problemas).

No entanto, a codificação fictícia precisa ser usada em todas elas e quão errados os resultados seriam se alguém usar a codificação one-hot?

Meu foco está na previsão em modelos de regressão com múltiplas variáveis ​​categóricas (alta cardinalidade), por isso não estou interessado em intervalos de confiança.


10
Afirmo que é incorreto distinguir os dois. Variáveis dummy e variáveis one-hot são sinônimos completos. O primeiro termo é mais antigo e vem das estatísticas, enquanto o segundo é mais jovem e do aprendizado de máquina. O terceiro sinônimo, e mais formal, são as variáveis ​​de contraste do tipo indicador . A questão de usar todas as variáveis ​​não redundantes k ou k-1 no conjunto dessas variáveis ​​elementares não tem nada a ver com essa terminologia e depende do tipo de análise e do algoritmo ou programa concreto.
precisa saber é o seguinte

2
(cont.) Por exemplo, um software de regressão normalmente não permite inserir todos os k por causa da singularidade, mas um software de modelagem linear geral equivalente pode permitir, pois usa uma abordagem pseudo-inversa.
precisa saber é o seguinte

11
Estou com @ttnphns, ambos são nomes horríveis. Eu prefiro full-codificação e codificação leave-one-out .
Matthew Drury

2
Desculpas pela terminologia, este é o termo padrão que eu já vi usado pelos profissionais (e livros de orientação semelhante). A questão da colinearidade aparece apenas em lineares (modelos não penalizados)? Nem todos os softwares pára de entrar em todos os k (de por exemplo Python scikit-learn, me corrija se eu estiver errado)
user90772

@MatthewDrury Um dos meus ódios de estimação são termos / frases duplicados que entram no campo da análise estatística, como "codificação one-hot" e "teste A / B". Todos devem seguir a "codificação fictícia" e o "teste de hipóteses" mais antigos para evitar confusão.
RobertF 04/02/19

Respostas:


7

kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

A penalização tornará o modelo identificável, mas a codificação redundante ainda afetará os valores dos parâmetros de maneiras estranhas, considerando o exposto acima.

O efeito de uma codificação redundante em uma árvore de decisão (ou conjunto de árvores) provavelmente sobrecarregará o recurso em questão em relação a outros, uma vez que é representado por uma variável redundante extra e, portanto, será escolhido com mais frequência do que seria para divide.


11
Eu não acho que exista qualquer razão para incluir uma interceptação em uma árvore ou conjunto de árvores. Acredito que isso seja algo particular dos modelos lineares. Portanto, para modelos baseados em árvore, acho que a idéia certa não é interceptar, codificação completa.
Matthew Drury

@ MatthewDrury Eu acho que você está certo sobre a interceptação, mas mesmo assim, para uma árvore, a codificação redundante parece ter uso limitado. Por exemplo, se um recurso é binário, qual é a diferença entre dividir na primeira classe e dividir na segunda classe? Nada, até onde eu sei.
Kodiologist

É verdade, mas acho que manter toda a simetria é a maneira mais simples de manter tudo obviamente justo e interpretável.
Matthew Drury

1

O Kodiologista teve uma ótima resposta (+1). Os métodos de codificação one-hot vs. codificação dummy são os mesmos, em termos de matriz de design, no mesmo espaço, com base diferente. (embora a codificação one-hot tenha mais colunas)

Portanto, se você estiver focando na precisão, e não na interpretabilidade. Dois métodos de codificação não fazem diferença.


11
Para ser pedante, a versão one-hot não é uma base (porque é linearmente dependente); apenas ocupa o mesmo espaço. Mas você tem certeza de que a codificação não faz diferença na precisão? Particularmente no caso de regressão penalizada, acho que o modelo final selecionado fará previsões diferentes.
Kodiologist

@ Kodiologist obrigado por me corrigir na questão de base.
Haitao Du

@ Kodiologist Por que a precisão será diferente no método linear regularizado?
Haitao Du

4
Na regressão regularizada, você deve sempre usar uma codificação completa (ou seja, não deixar de fora, não posso manter os nomes que você usou corretamente e prefere não usá-los). Isso ocorre porque a interceptação não é penalizada; portanto, se você está deduzindo o efeito de um nível como não parte da interceptação, é difícil dizer que você está penalizando todos os níveis igualmente. Em vez disso, inclua sempre todos os níveis, para que cada um seja simétrico em relação à penalidade.
Matthew Drury

11
@ Matthew Drury, obrigado por este último comentário. Você poderia expandi-lo em uma resposta? Portanto, é apenas para regressão linear simples que a codificação fictícia é necessária?
user90772

1

Sinto-me a melhor resposta a esta pergunta está enterrado nos comentários por @MatthewDrury, que afirma que não é uma diferença e que você deve usar a coluna aparentemente redundante em qualquer abordagem regularizada. @ O raciocínio de MatthewDrury é

[Na regressão regularizada], a interceptação não é penalizada; portanto, se você está inferindo o efeito de um nível como não parte da interceptação, é difícil dizer que você está penalizando todos os níveis igualmente. Em vez disso, inclua sempre todos os níveis, para que cada um seja simétrico em relação à penalidade.

Eu acho que ele tem razão.


Portanto, você deve ter uma variável de codificação quente com kníveis ou com k-1níveis dependendo da situação. Além da sua declaração (regularizada / não regularizada), haveria diretrizes sobre o que fazer em todos os casos?
Dan Chaltiel 20/03/19

Minha regra é que, se não houver regularização, como na ANOVA clássica, use os níveis de k-1. Se houver regularização, como nos métodos bayesianos ou regressão com regularização L2, use os níveis de k.
Ben Ogorek
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.