Descartar uma das colunas ao usar a codificação hot-one


21

Meu entendimento é que no aprendizado de máquina pode ser um problema se o seu conjunto de dados tiver recursos altamente correlacionados, pois codificam efetivamente as mesmas informações.

Recentemente, alguém apontou que, quando você codifica uma variável quente em uma variável categórica, você acaba com recursos correlatos; portanto, você deve descartá-los como uma "referência".

Por exemplo, a codificação de gênero como duas variáveis is_malee is_femaleproduz dois recursos perfeitamente correlacionados negativamente; portanto, eles sugeriram o uso de um deles, definindo efetivamente a linha de base para dizer masculino e verificando se a coluna is_female é importante no algoritmo preditivo. .

Isso fez sentido para mim, mas não encontrei nada on-line que sugira que esse pode ser o caso, então isso está errado ou estou faltando alguma coisa?

Possível duplicata (sem resposta): a colinearidade dos recursos codificados de um modo importante é importante para SVM e LogReg?


8
you end up with correlated features, so you should drop one of them as a "reference"Variáveis ​​fictícias ou variáveis ​​indicadoras (esses são os dois nomes usados ​​nas estatísticas, sinônimo de "codificação one-hot" no aprendizado de máquina) são correlacionados de maneira dupla, sejam elas variáveis ​​k ou k-1. Portanto, a melhor palavra é "estatisticamente / informativamente redundante" em vez de "correlacionada".
ttnphns

O conjunto de todos os k manequins é o conjunto multicolinear porque, se você conhecer os valores de k-1 manequins nos dados, conhecerá automaticamente os valores desse último manequim. Alguns métodos ou algoritmos de análise de dados exigem que você solte um dos k. Outros são capazes de lidar com todos os k.
ttnphns

@ttnphns: obrigado, isso faz sentido. Manter todos os valores de k teoricamente os torna recursos mais fracos que poderiam / deveriam ser eliminados com a redução da dimensionalidade? Um dos argumentos para usar algo como o PCA geralmente é remover recursos correlacionados / redundantes. Gostaria de saber se manter todas as k variáveis ​​se enquadra nessa categoria.
dasboth

Does keeping all k values theoretically make them weaker features. Não (embora eu não tenha 100% de certeza do que você quer dizer com "mais fraco"). using something like PCAObserve, apenas no caso, que o PCA em um conjunto de manequins representando uma mesma variável categórica tem pouco ponto prático, porque as correlações dentro do conjunto de manequins refletem apenas as relações entre as frequências da categoria (portanto, se todas as frequências são iguais, todas as correlações são iguais para 1 / (k-1)).
ttnphns

O que quero dizer é que, quando você usa seu modelo para avaliar a importância do recurso (por exemplo, com uma floresta aleatória), ele subestima a importância dessa variável se você incluir todos os valores de k? Como você obtém uma estimativa "mais verdadeira" da importância do sexo se estiver usando apenas uma is_malevariável em oposição a ambas as opções? Talvez isso não faça sentido nesse contexto, e isso só pode ser um problema quando você tem duas variáveis ​​diferentes que realmente codificam a mesma informação (por exemplo, altura em polegadas e altura em cm).
dasboth

Respostas:


22

lmglm

Com outros modelos, use os mesmos princípios. Se as previsões obtidas dependem de quais colunas você deixa de fora, não faça isso. Caso contrário, está tudo bem.

Até agora, esta resposta menciona apenas modelos lineares (e alguns levemente não lineares). Mas e os modelos não lineares, como árvores e florestas aleatórias? As idéias sobre codificação categórica, como one-hot, decorrem principalmente de modelos e extensões lineares. Há poucas razões para pensar que as idéias derivadas desse contexto devem ser aplicadas sem modificação para árvores e florestas! para algumas idéias, consulte Regressão aleatória da floresta com dados esparsos no Python .

β,β2,β3β1=0 0β2-β1,β3-β1


Posso concordar que a escolha da variável de referência afetará o resultado da regressão regularizada, mas não tenho muita certeza se deixar todas as variáveis ​​como estão é melhor do que largar uma. Você tem algum motivo para isso?
Kota Mori

Bem, apenas duas alternativas ... Manter todos os níveis mantém a invariância e não há arbitrariedade. Se você tiver outras razões para reduzir o número de níveis, como muitos deles, informe-nos sobre isso
kjetil b halvorsen
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.