a engenharia de recursos é importante ao fazer o Random Forest ou o Gradient Boosting?

9

Para modelos lineares (como regressão linear, regressão logística, etc.), a engenharia de recursos é uma etapa importante para melhorar o desempenho dos modelos. Minha pergunta é: importa se realizamos alguma engenharia de recursos ao usar floresta aleatória ou aumento de gradiente?

Concedido que esses modelos não são modelos de aprendizado profundo. mas parece que alguns dos métodos de engenharia de recursos não melhoram realmente o modelo. Por exemplo: Estou com um problema de classificação binária, que contém cerca de 200 recursos , e 20 deles são recursos categóricos. Eu fiz o seguinte:

  1. benchmark: executou o classificador aleatório da floresta diretamente nos dados originais. Eu tenho AUC em torno de 0,93, precisão, recall e F-score são em torno de 0,95 (eu disse, porque a validação statifiedKfold é aplicada e existem variações muito pequenas nos resultados)

  2. Reduzi a dimensão do recurso fazendo o teste do qui quadrado e o teste ANOVA f1, para executar o modelo. os resultados são quase idênticos: AUC em torno de 0,93, precisão, recall e F-score em torno de 0,95

  3. depois, digitei todas as características categóricas com uma tecla de atalho e, em seguida, executei novamente o modelo, os resultados ainda quase idênticos: AUC em torno de 0,93, precisão, recall e F-score em torno de 0,95

  4. Em seguida, o SVD truncado é aplicado para reduzir ainda mais os recursos e treinar novamente o modelo, ainda os resultados permanecem inalterados ...

  5. por fim, adicionei termo polinomial, termo cruzado dos demais recursos. os resultados ainda não foram alterados ...

Alguma sugestão, por favor? obrigado.

user6396
fonte
11
Como as respostas dizem, isso importa em geral. Técnicas particulares de engenharia de recursos podem tender a ser inúteis para métodos específicos de aprendizado de máquina - por exemplo, uma floresta aleatória deve lidar adequadamente com relacionamentos curvilíneos, sem a necessidade de criar bases polinomiais para os preditores, diferentemente de um modelo linear.
Scortchi - Restabelece Monica

Respostas:

8

É razoavelmente amplamente reconhecido que a engenharia de recursos melhora o resultado ao usar algoritmos relativamente avançados, como GBMs ou florestas aleatórias. Existem algumas razões, relacionadas à precisão geral e à usabilidade. Em primeiro lugar, se você realmente deseja usar o modelo, os recursos exigirão manutenção e implementação e geralmente exigirão explicações para os usuários. Ou seja, cada recurso extra criará um trabalho extra. Portanto, para fins práticos, é útil eliminar recursos que não contribuem materialmente para melhorar a precisão.

No que diz respeito à precisão geral, recursos adicionais e / ou recursos mal projetados aumentam a probabilidade de você estar treinando seu modelo em ruído, em vez de sinal. Portanto, o uso do conhecimento do domínio ou a inspeção dos dados para sugerir maneiras alternativas de projetar recursos geralmente melhoram os resultados. O blog da kaggle - blog.kaggle.com - inclui artigos sobre 'como eles fizeram' dos finalistas do pódio em cada competição. Isso geralmente inclui descrições de engenharia de recursos - provavelmente mais frequentemente do que descrições de ajuste de modelo, enfatizando a importância da engenharia de recursos - e algumas delas são muito criativas, incluindo o aproveitamento do conhecimento do domínio fornecido pelos organizadores da competição ou descoberto durante a competição.

Este artigo recente é um bom exemplo de conhecimento de domínio adquirido durante a competição sendo usado para selecionar / projetar recursos http://blog.kaggle.com/2017/06/06/29/2017-data-science-bowl-predicting-lung- cancer-2nd-place-solution-write-up-daniel-hammack-and-julian-de-wit / (as seções intituladas 'Pré-processamento' e 'Dados Externos' dão bons exemplos).

Robert de Graaf
fonte
4

Sim, a melhor maneira de perceber isso é fazendo uma competição de kaggle. Você verá que muitos usuários usam os mesmos modelos (principalmente aumento e empilhamento de gradiente), mas a engenharia e a seleção de recursos é realmente o que pode fazer a diferença entre uma pontuação de 5% na classificação geral e os 20% melhores.

Mas você também deve verificar a colinearidade de seus recursos. Às vezes, adicionar muitos recursos correlacionados pode diminuir a precisão do seu modelo.

Além disso, você precisa ajustar seus hiper parâmetros, o que pode lhe dar um aumento significativo na pontuação do seu modelo.

Afinal, se o seu modelo não melhorou, é provável que o algoritmo usado não seja adequado ao seu tipo de problema. Se um algoritmo é popular, isso não significa que é adequado para todo tipo de problema.

user2505650
fonte
2

Supondo que você esteja usando árvores como sua unidade de reforço (o modelo ajustado em cada iteração), é verdade que algumas transformações relativamente simples, como estritamente monotônicas (por exemplo, quadratura, escala, ln etc.) não terão efeito nos resultados , porque as árvores são invariantes a essas transformações. Além disso, a criação de interações entre variáveis ​​não ajudará muito, porque as árvores podem modelar inerentemente interações (desde que você permita que as árvores sejam profundas o suficiente). Consulte a página 352 (seção 10.7) de Elementos de aprendizagem estatística para obter mais detalhes.

No entanto, eu esperaria que as transformações bastante complexas que você descreve tenham um efeito nos resultados em geral.

Milad Shahidi
fonte