A seleção de recursos é necessária?

11

Gostaria de executar algum modelo de aprendizado de máquina como floresta aleatória, aumento de gradiente ou SVM no meu conjunto de dados. Existem mais de 200 variáveis ​​preditivas no meu conjunto de dados e minhas classes de destino são uma variável binária.

Preciso executar a seleção de recursos antes do ajuste do modelo? Isso afeta significativamente o desempenho do modelo ou não há muita diferença se eu ajustar diretamente o modelo usando todas as variáveis ​​preditoras?

LUSAQX
fonte
Qual é o tamanho do seu conjunto de dados? Se você possui milhares de amostras e 200 variáveis ​​preditoras, as chances são altas de que, com um modelo como o Random Forests, você já consiga atingir um desempenho bastante alto. A seleção adicional de recursos melhorará ainda mais seu desempenho.
Archie
@ Archie Sim, o tamanho do meu conjunto de dados é semelhante ao que você mencionou. 'Seleção de recurso adicional', você deseja realizar a seleção de recurso antes do ajuste do modelo e isso pode favorecer o desempenho do modelo?
LUSAQX 4/17/17
Quero dizer, eu primeiro experimentaria todos os recursos, o Random Forests seria um ótimo classificador para começar. Se você deseja aumentar o desempenho, eu observaria, por exemplo, as importâncias dos recursos para selecionar os recursos mais significativos.
Archie # 9
Está bem. Foi o que fiz até agora. Vou tentar alguns métodos de seleção de recursos antes do ajuste do modelo para ver se há alguma melhoria até então.
LUSAQX 4/17/17
Uma resposta curta da minha prática recente, a seleção de recursos é necessária para a comparação de modelos. Alguns algoritmos funcionariam melhor em algum conjunto de recursos, enquanto outros algoritmos em outro conjunto.
LUSAQX

Respostas:

11

A seleção de recursos pode ser considerada um estágio a ser evitado. Você precisa gastar tempo de computação para remover recursos e realmente perder dados, e os métodos necessários para a seleção de recursos não são ideais, pois o problema é NP-Complete . Usá-lo não soa como uma oferta que você não pode recusar.

Então, quais são os benefícios de usá-lo?

  1. Muitos recursos e baixa taxa de amostras / recursos introduzirão ruído no seu conjunto de dados. Nesse caso, é provável que o seu algoritmo de classificação se ajuste demais e lhe dê uma falsa sensação de bom desempenho.
  2. Reduzir o número de recursos reduzirá o tempo de execução nos estágios posteriores. Isso, por sua vez, permitirá que você use algoritmos de maior complexidade, pesquise mais hiper parâmetros ou faça mais avaliações.
  3. Um conjunto menor de recursos é mais compreensível para os seres humanos. Isso permitirá que você se concentre nas principais fontes de previsibilidade e faça uma engenharia de recursos mais exata. Se você precisar explicar seu modelo para um cliente, é melhor apresentar um modelo com 5 recursos do que um modelo com 200 recursos.

Agora, para o seu caso específico: recomendo que você comece a calcular as correlações entre os recursos e o conceito. A correlação computacional entre todos os recursos também é informativa. Observe que existem muitos tipos de correlações úteis (por exemplo, Pearson , informações mútuas ) e muitos atributos que podem afetá-las (por exemplo, escassez, desequilíbrio de conceito). Examiná-los em vez de optar cegamente por um algoritmo de seleção de recursos pode economizar muito tempo no futuro.

Não acho que você tenha muitos problemas de tempo de execução com seu conjunto de dados. No entanto, a proporção de amostras / recursos não é muito alta; portanto, você pode se beneficiar da seleção de recursos.

Escolha um classificador de baixa complexidade (por exemplo, regressão linear, uma pequena árvore de decisão) e use-o como referência. Experimente no conjunto completo de dados e em alguns conjuntos de dados com um subconjunto dos recursos. Essa referência guiará você no uso da seleção de recursos. Você precisará dessas orientações, já que existem muitas opções (por exemplo, o número de recursos a serem selecionados, o algoritmo de seleção de recursos) e, uma vez que o objetivo geralmente é a predicação e não a seleção de recursos, para que o feedback esteja a pelo menos um passo.

DaL
fonte
Muito obrigado. Mas para um classificador não linear como a floresta aleatória, também é necessário que as variáveis ​​preditoras sejam independentes uma da outra? Acho que não, mas poderia estar errado. Como a correlação guia a seleção de recursos?
LUSAQX 4/17/17
A floresta aleatória é uma coleção de árvores que lidam bem com a variável dependente. Isso ocorre porque em cada nó da árvore, o conjunto de dados é condicionado por todas as variáveis ​​acima dele. O problema é que o crescimento da árvore é heurístico, portanto, a escolha da variável acima pode não ter sido ideal.
Dal
A correlação compara apenas pares de variáveis ​​e, portanto, não pode fornecer uma imagem completa. Por outro lado, você obtém o resultado em O (n ^ 2) e não em O (2 ^ n) ... As orientações geralmente são específicas para o conjunto de dados, por isso acho difícil explicar dessa maneira. Alguns exemplos são a remoção de variáveis ​​redundantes (muito correlacionadas com outras variáveis). Examinar a força da correlação pode indicar se você pode usar um modelo pequeno ou será necessário usar muitos alunos fracos. Identificar um subconjunto que não esteja muito correlacionado entre si pode indicar que o co-treinamento será útil.
Dal
0

Sim, a seleção de recursos é uma das tarefas mais cruciais para os problemas de aprendizado de máquina, depois de realizar a limpeza e manipulação de dados. você pode encontrar as funções que implementam o processo de seleção de recursos usando a importância do recurso XGBOOST aqui.

https://github.com/abhisheksharma4194/Machine-learning

Abhishek Sharma
fonte