Importância do recurso com recursos categóricos de alta cardinalidade para regressão (variável dependente numérica)

12

Eu estava tentando usar as importâncias de recursos da Random Forests para executar alguma seleção empírica de recursos para um problema de regressão em que todos os recursos são categóricos e muitos deles têm muitos níveis (da ordem de 100-1000). Dado que a codificação one-hot cria uma variável dummy para cada nível, as importâncias dos recursos são para cada nível e não para cada recurso (coluna). Qual é uma boa maneira de agregar essas importâncias de recursos?

Pensei em somar ou obter a importância média para todos os níveis de um recurso (provavelmente o primeiro será direcionado para os recursos com mais níveis). Há alguma referência sobre esse problema?

O que mais se pode fazer para diminuir o número de recursos? Estou ciente do laço do grupo, não encontrei nada fácil de usar para o scikit-learn.

user90772
fonte
Alguém pode responder à pergunta de se faz sentido somar a importância da variável de cada nível da variável categórica?
see24
@ see24 Não, você não pode simplesmente soma-los: stats.stackexchange.com/questions/314567/… #
Dan Dan

Respostas:

5

Depende de como você os codifica. Muitas soluções automatizadas para isso nomearão todos os booleanos convertidos com um padrão para que uma variável categórica chamada "letra" com valores AZ acabe da seguinte forma:

letra_A, letra_B, letra_C, letra_D, ....

Se, depois de descobrir a importância do recurso, você tiver uma matriz de características e o peso / importância associado, eu analisaria a matriz e talvez resumisse os pesos de importância da característica para qualquer coisa que comece com "letra%".

CalZ
fonte
3
A soma não está dando vantagem a esses recursos com mais níveis?
user90772
Hmm, bom ponto. Talvez resumir e depois dividir pelo número de níveis / variáveis ​​codificadas um a quente para obter uma importância "média".
Calz
2
Pensei um pouco mais sobre isso e depende de como a importância é pontuada. Em alguns casos, o valor de cada recurso é um peso relativo, onde todo o conjunto é igual a 1. Nesse caso, acho que faria sentido resumir os recursos mais quentes. Se a pontuação do recurso for mais parecida com um coeficiente de regressão e não ponderada em relação ao efeito líquido, a média provavelmente será melhor.
CalZ #
Obrigado pela resposta. Dado que sou bastante novo na área, pensei que isso era algo padrão para as pessoas na ciência de dados, mas ou não é o que devo fazer para avaliar a importância dos recursos de uma coluna ou este post não obteve visualizações suficientes. De qualquer forma, obrigado!
user90772
1
Muitas pessoas advogam olhar para o interior do modelo como uma caixa preta e avaliar o desempenho. Em certos casos (por exemplo, redes neurais), isso ocorre porque você não pode realmente examiná-lo profundamente. Para alguns lugares em que você pode facilmente visualizar quais recursos são importantes (por exemplo, regressão linear), você pode facilmente enganar (consulte: stats.stackexchange.com/questions/105114/… ). Acho que é por isso que às vezes as pessoas evitam olhar para a importância dos recursos individuais.
Calz