top of page
Blog: Blog2
Foto do escritorafonso lenzi

Feature Selection com Python

Atualizado: 6 de jan. de 2020

Seleção de variáveis


Seleção de variáveis é um processo onde você automaticamente seleciona aquelas variáveis (x)dentre os seus dados que mais contribuem para prever a variável dependente(y).


Tendo variáveis irrelevantes nos seus dados pode reduzir a acurácia do seu modelo, especialmente algoritmos lineares e regressão logística.


Três benefícios de fazer a seleção de variáveis são:

Reduz o excesso de ajuste: dados menos redundantes significam menos oportunidade de tomar decisões com base no ruído.

Melhora a precisão: dados menos enganosos significam uma melhora na precisão da modelagem.

Reduz o tempo de treinamento: menos dados significa que os algoritmos treinam mais rapidamente.


Base de dados:



1. Seleção univariada


Testes estatísticos podem ser usados para selecionar os recursos que têm o relacionamento mais forte com a variável de saída.


A biblioteca scikit-learn fornece a classe SelectKBest que pode ser usada com um conjunto de diferentes testes estatísticos para selecionar um número específico de recursos.


Muitas varreduras de testes estatísticos diferentes podem ser usadas com esse método de seleção.


Por exemplo, o método do valor F da ANOVA é apropriado para entradas numéricas e dados categóricos, como vemos no conjunto de dados Pima.


Isso pode ser usado através da função f_classif (). Selecionaremos os 4 melhores recursos usando esse método no exemplo abaixo.






Para obter ajuda sobre qual medida estatística usar para seus dados, consulte o tutorial:


https://machinelearningmastery.com/feature-selection-with-real-and-categorical-data/



Você pode ver as pontuações de cada atributo e os 4 atributos escolhidos (aqueles com as pontuações mais altas). Apresenta especificamente os índices 0 (preq), 1 (plas), 5 (massa) e 7 (idade).


2. Eliminação Recursiva de Recursos


A Eliminação Recursiva de Recursos (ou RFE) funciona removendo recursivamente atributos e construindo um modelo nos atributos que permanecem.


Ele usa a precisão do modelo para identificar quais atributos (e combinação de atributos) contribuem mais para prever o atributo de destino.


Você pode aprender mais sobre a classe RFE na documentação do scikit-learn.

https://scikitlearn.org/stable/modules/generated/sklearn.feature_selection.RFE.html#sklearn.feature_selection.RFE


O exemplo abaixo usa o RFE com o algoritmo de regressão logística para selecionar os três principais recursos.


A escolha do algoritmo não importa muito, desde que seja hábil e consistente.




Você pode ver que a RFE escolheu os três principais recursos como preg, mass e pedi.


Eles estão marcados como Verdadeiro na matriz support_ e marcados com uma opção "1" na matriz ranking_.


3. Principal Component Analysis


A Análise de componentes principais (ou PCA) usa álgebra linear para transformar o conjunto de dados em um formato compactado.


Geralmente isso é chamado de técnica de redução de dados.


Uma propriedade do PCA é que você pode escolher o número de dimensões ou o componente principal no resultado transformado.

No exemplo abaixo, usamos o PCA e selecionamos 3 componentes principais.


Saiba mais sobre a classe PCA no scikit-learn revisando a API do PCA.

https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html


Mergulhe mais fundo na matemática por trás do PCA no artigo da Wikipedia sobre análise de componentes principais.




Você pode ver que o conjunto de dados transformado (3 componentes principais) apresenta pouca semelhança com os dados de origem.


4. Feature Importance


Árvores de decisão, como Random Forest e Extra Trees, podem ser usadas para estimar a importância dos recursos.

No exemplo abaixo, construímos um classificador ExtraTreesClassifier para o conjunto de dados de início de diabetes Pima.

Você pode aprender mais sobre a classe ExtraTreesClassifier na API do scikit-learn. https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html




Você pode ver que recebemos uma pontuação importante para cada atributo em que quanto maior a pontuação, mais importante é o atributo. As pontuações sugerem a importância de plas, idade e massa.


Resumo


Nesta postagem, você descobriu a seleção de recursos para preparar dados de aprendizado de máquina no Python com o scikit-learn.

Você aprendeu sobre quatro técnicas diferentes de seleção automática de recursos:

Seleção univariada. Eliminação Recursiva de Recursos. Análise de componentes principais. Importância do Recurso.


Tradução literal deste artigo do inglês para o português durante estudos:

https://machinelearningmastery.com/feature-selection-machine-learning-python/

367 visualizações0 comentário

Posts recentes

Ver tudo

Plotly Express

Comments


bottom of page