
A seleção correta de recursos para análise de dados permite:
- melhorar a qualidade dos modelos de aprendizado de máquina com e sem professor,
- reduzir o tempo de treinamento e reduzir o poder de computação necessário,
- e no caso de dados de entrada de alta dimensão permite enfraquecer a “maldição da dimensão”.
Uma avaliação da importância dos atributos é necessária para interpretar os resultados do modelo.
Consideraremos os métodos existentes para selecionar traços para tarefas de ensino com e sem professor. Cada método é ilustrado com uma implementação de código aberto no Python, para que você possa testar rapidamente os algoritmos propostos. No entanto, essa não é uma seleção completa: nos últimos 20 anos, muitos algoritmos foram criados e aqui você encontrará o mais básico deles. Para um estudo mais aprofundado, confira esta
revisão .
Modelos com e sem professor
Existem algoritmos de seleção com o professor, que permitem determinar as características apropriadas para a melhor qualidade do trabalho das tarefas de ensino com o professor (por exemplo, em problemas de classificação e regressão). Esses algoritmos precisam acessar os dados marcados. Para dados não rotulados, também existem vários métodos de seleção de recursos que avaliam todos os recursos com base em vários critérios: variação, entropia, capacidade de manter similaridade local etc. Recursos relevantes detectados usando métodos heurísticos sem um professor também podem ser usados em modelos com um professor, porque eles podem detectar padrões diferentes da correlação de recursos com a variável de destino.
Os métodos de seleção de características geralmente são divididos em 4 categorias: filtros, invólucros, embutidos e híbridos.
Wrappers
Com essa abordagem, avaliamos a eficácia de um subconjunto de atributos, levando em consideração o resultado final do algoritmo de aprendizado aplicado (por exemplo, qual é o aumento da precisão na resolução do problema de classificação). Nesta combinação de estratégia e modelagem de pesquisa, qualquer algoritmo de aprendizado pode ser usado.

Estratégias de seleção existentes:
- Seleção direta (seleção direta) : começamos com um conjunto vazio de recursos e adicionamos iterativamente recursos que proporcionam o melhor aumento na qualidade dos modelos.
- Seleção reversa : começamos com um conjunto de todos os atributos e, em cada iteração, removemos o atributo "pior".
Implementação: esses algoritmos são implementados no pacote
mlxtend , aqui está
um exemplo de uso.
- RFE (eliminação de recurso recursivo): um algoritmo de pesquisa “ganancioso” que seleciona recursos definindo recursivamente conjuntos de recursos cada vez menores. Ele classifica os sinais de acordo com a ordem em que são removidos.
Implementação: scikit-learn
Métodos em linha
Este grupo inclui algoritmos que treinam simultaneamente o modelo e selecionam recursos. Isso geralmente é implementado usando o l-
regularizador (
regularizador de escarsidade) ou uma condição que limita alguns dos sinais.
- SMLR (Regressão logística multinomial esparsa): esse algoritmo implementa a regularização l1 usando ARD (determinação automática de relevância) como parte da regressão logística multinomial clássica. A regularização determina a importância de cada característica e anula aquelas que são inúteis para a previsão.
Implementação: SMLR - ARD (Regressão Automática de Determinação da Relevância): O modelo usa a Regressão Bayesian Ridge. Ele muda o peso dos coeficientes para zero mais fortemente, comparado, por exemplo, com o método dos mínimos quadrados.

O ARD zera o peso de alguns recursos, ajudando assim a identificar dimensões relevantes.
Implementação: scikit-learn
Outros exemplos de algoritmos de regularização:
Lasso (implementa
l1- regularização),
regressão de crista (implementa
l2- regularização),
Elastic Net (implementa
l1- e
l2- regularização). Se você descrever esses métodos graficamente, poderá ver que a regressão Lasso limita os coeficientes ao quadrado, a regressão da crista delineia o círculo e a Rede Elástica ocupa uma posição intermediária.
https://scikit-learn.org/stable/auto_examples/linear_model/plot_sgd_penalties.htmlUma descrição abrangente desses algoritmos é fornecida
aqui .
Filtros
Com essa abordagem, avaliamos a importância dos atributos apenas com base em suas características inerentes, sem envolver algoritmos de aprendizado. Esses métodos são mais rápidos e requerem menos recursos computacionais em comparação com os métodos de wrapper. Se não houver dados suficientes para modelar uma correlação estatística entre os recursos, os filtros poderão produzir resultados piores que os wrappers. Ao contrário dos invólucros, esses métodos são menos propensos a reciclagem. Eles são amplamente usados para trabalhar com dados de alta dimensão, quando os métodos de invólucro exigem muito poder de computação.
Métodos do professor
- Relevo : esse método seleciona aleatoriamente amostras do conjunto de dados e atualiza a significância de cada atributo com base na diferença entre a instância selecionada e os dois objetos mais próximos das mesmas classes e classes opostas. Se houver uma diferença nos valores da característica para os dois vizinhos mais próximos da mesma classe, sua importância diminuirá e, pelo contrário, houver uma diferença entre os valores da característica para objetos de diferentes classes, a importância aumentará de acordo.
O peso do atributo diminui se o valor for diferente para os objetos mais próximos da mesma classe mais do que para os objetos mais próximos de classes diferentes; caso contrário, o peso aumenta.
O algoritmo avançado do ReliefF usa a ponderação de recursos e procura por vizinhos mais próximos.
Implementação: scikit-rebate , ReliefF - Escore de Fisher : comumente usado em problemas de classificação binária. A proporção de Fisher (FiR) é definida como a distância entre os valores médios dos atributos para cada classe dividida por sua variação:
Implementação: scikit-feature , exemplo de uso. - Escore qui-quadrado : verifica se há uma diferença significativa entre as frequências observadas e esperadas de duas variáveis categóricas. Assim, é testada a hipótese nula da ausência de conexão entre duas variáveis.
Critério de independência do qui-quadrado .
Para aplicar corretamente o critério qui-quadrado para verificar a relação entre diferentes sinais do conjunto de dados e a variável de destino, é necessário observar as condições: as variáveis devem ser categóricas , independentes e devem ter uma frequência esperada superior a 5 . A última condição garante que o CDF (função de densidade cumulativa) do critério estatístico (estatística de teste) possa ser aproximado usando a distribuição qui-quadrado. Saiba mais aqui .
Implementação: sklearn , scipy - CFS (Seleção de Recurso Baseado em Correlação): A lógica deste método pode ser formulada da seguinte maneira:
Os sinais são relevantes se seus valores mudarem sistematicamente, dependendo de pertencerem a uma ou outra categoria.
Assim, um bom subconjunto de recursos contém esses recursos que estão altamente correlacionados com a variável de destino, enquanto não estão correlacionados entre si. A pontuação de um subconjunto de k recursos é calculada da seguinte maneira :
Aqui É a média de todas as correlações entre uma característica e uma classe e - o valor médio de todas as correlações entre os recursos. O critério CFS é definido da seguinte forma:
Implementação: scikit-feature , exemplo de uso. - FCBF (Filtro rápido baseado em correlação): esse método funciona de forma mais rápida e eficiente que o ReliefF e o CFS e, portanto, é mais comumente usado para entrada de alta dimensão. De fato, essa é uma abordagem típica que leva em consideração a relevância e a redundância, na qual a primeira incerteza simétrica é calculada para todos os atributos (informações mútuas entre X e YI (X, Y) divididos pela soma de suas entropias)); em seguida, os atributos são classificados por esse critério e então o excesso é removido.
Implementação: skfeature , https://github.com/shiralkarprashant/FCBF
Métodos sem professor
- Dispersão : Foi demonstrado que a estimativa da variação de caracteres pode ser uma maneira eficaz de seleção de caracteres Como regra, sinais com dispersão quase nula não são significativos e podem ser removidos.
Implementação: limiar de variação - Diferença absoluta média : calcule a diferença absoluta média entre os valores do atributo e seu valor médio ( implementação ).
Valores mais altos tendem a ter maior poder preditivo. - Taxa de dispersão : Média aritmética dividida pela média geométrica. Maior variação corresponde a características mais relevantes ( implementação ).
Desde se e somente se a igualdade for respeitada então:
- Pontuação do Laplaciano : baseia-se na observação de que os dados de uma classe geralmente estão localizados próximos uns dos outros, para que você possa avaliar a importância de um recurso por sua capacidade de refletir essa proximidade. O método consiste em incorporar dados no gráfico de vizinhos mais próximos, medindo uma distância arbitrária, seguida pelo cálculo da matriz de pesos. Então, para cada característica, calculamos o critério de Laplace e obtemos uma propriedade de forma que os menores valores correspondam às dimensões mais importantes. No entanto, na prática, ao selecionar um subconjunto de recursos, geralmente é usado um algoritmo de agrupamento diferente (método k-means), com o qual o grupo mais eficaz é selecionado.
Implementação: scikit-feature - Critério de Laplace em combinação com entropia baseada em distância : o algoritmo é baseado no critério de Laplace, onde o agrupamento de médias k é substituído pela entropia. O algoritmo demonstra maior estabilidade em conjuntos de dados de alta dimensão ( implementação ).
- MCFS (seleção de recursos de vários clusters): a análise espectral é realizada para medir a correlação entre diferentes características. Para agrupamento de dados e avaliação de recursos, são utilizados os autovetores do operador Laplacian (gráfico Laplacian). Seu cálculo é descrito neste artigo .
Implementação: https://github.com/danilkolikov/fsfc - Os algoritmos LFSBSS (seleção de recursos localizados), médias k ponderadas ( médias k ponderadas), SPEC e Apriori são considerados aqui e implementados neste pacote .
Métodos híbridos
Outra maneira de implementar a seleção de recursos é um híbrido de filtros e wrappers combinados em um processo de duas fases: primeiro, os recursos são filtrados por propriedades estatísticas e, em seguida, os métodos de empacotamento são aplicados.
Outras fontes
Muita literatura foi escrita na qual o problema de selecionar recursos é considerado, e aqui apenas tocamos um pouco em toda a gama de pesquisas científicas.
Uma
lista completa
de outros algoritmos de seleção de características que eu não mencionei foi implementada no pacote
scikit-feature .
Os recursos relevantes também podem ser determinados usando
PLS (mínimos quadrados parciais, como descrito neste
artigo , ou usando métodos de redução de dimensão linear, como mostrado
aqui) .
Jet Infosystems traduzidos