Seleção de Features com Recursive Feature Elimination (RFE)
Feature Selection
A seleção de features, ou feature selection, é parte crucial do pipeline da criação de modelos de machine learning, impacta diretamente a performace do seu modelo. Englobar todas as features não é uma boa prática e selecionar features com baixa importância também influencia o seu modelo.
Os métodos de seleção de features envolvem avaliar o relacionamento entre as variáveis de entrada e saída, para selecionar as variáveis de entrada que tem o relacionamento mais forte com a saída.
Os modelos mais complexos possuem uma alta variância, tendendo ao overfit. Já os modelos mais simples possuem um alto viés, e por sua vez, tendem ao underfit, falhando em capturar a complexidade de novos dados. Por isso é crucial balancear o viés e variância do modelo com uma seleção adequada de features.
Os modelos, especialmente os de regressão, estimam seus parâmetros para cada input do modelo. Por isso a inclusão de variáveis não tão informativas além de adicionar incertezas nas previsões reduzem a eficácia geral do modelo.
As técnicas de seleção de features para modelos supervisionados são divididos em intrínsics, wrapper methods e filter methods. Os wrapper methods (como o RFE) são validados a partir da performace do modelo no dataset. Eles criam vários modelos com diferentes subconjuntos de features de entrada e selecionam deas features que trazem o melhor resultado para o modelo de acordo com uma métrica de desempenho. Ele segue a abordagem greedy search, que avalia todas as combinações possíveis de features em relação a métrica de validação, e os wrapper methods geralmente tem um poder preditivo melhor que os filter methods para selação de features.
Diante disto, neste post falaremos sobre a seleção de features baseada no Recursive Feature Elimination (RFE)
Recursive Feature Elimination (RFE)
O RFE é um método simples e comum para selecionar as melhores ’n’ features para construção de modelos. Dado um estimador externo que atribui pesos às features (por exemplo, os coeficientes de um modelo linear), o objetivo da recursive feature elimination (RFE) é selecionar as features considerando recursivamente conjuntos cada vez menores de features. Primeiro, o estimador (modelo) é treinado no conjunto inicial de features e a importância de cada uma é obtida através de qualquer atributo específico. Em seguida, as features menos importantes são removidas do conjunto original de features. Esse procedimento é repetido recursivamente no dataset até que o número desejado de características a serem selecionadas seja obtido.
Tomando como exemplo uma regressão linear, após esta etapa, é realizado um processo iterativo de verificação de significância estatística (com base no valor P do coeficiente do modelo para uma feature) e verificação de multicolinearidade (com base no Variance Inflation Factor ou VIF) para seleção das features. Para o algoritmo RFE, é necessário especificar o número exato de recursos a serem selecionados para o desenvolvimento do modelo, mas com o uso da validação cruzada essa etapa pode ser automatizada.
Lets code
Primeiramente é preciso importar as bibliotecas necessárias
Criando um dataset para a simulação:
Fazendo a validação cruzada para seleção das features pelo RFE. Ao inserir o número de features, ao executar o grid search, é realizado o teste alternando a quantidade de features com base no scoring escolhido.
Nas duas células a seguir faço a exibição do total de features selecionadas, quais foram selecionadas e seu ranking.
Referências: