Seleção de recursos vs Extração de recursos. Qual usar quando?

14

A extração e a seleção de recursos reduzem essencialmente a dimensionalidade dos dados, mas a extração de recursos também torna os dados mais separáveis, se eu estiver certo.

Qual técnica seria preferida à outra e quando?

Eu estava pensando, como a seleção de recursos não modifica os dados originais e suas propriedades, presumo que você usará a seleção de recursos quando for importante que os recursos em que você está treinando sejam inalterados. Mas não consigo imaginar por que você iria querer algo assim ..

Sid
fonte

Respostas:

15

Adicionando a resposta dada por Toros,

Estes (veja os marcadores abaixo) são três similares, mas com diferenças sutis - :( conciso e fácil de lembrar)

  • extração e engenharia de recursos : transformação de dados brutos em recursos adequados para modelagem;

  • transformação de recursos : transformação de dados para melhorar a precisão do algoritmo;

  • seleção de recursos : remoção de recursos desnecessários.

Apenas para adicionar um exemplo do mesmo,

Extração e engenharia de recursos (podemos extrair algo deles)

  • Textos (ngrams, word2vec, tf-idf etc)
  • Imagens (CNN'S, textos, perguntas e respostas)
  • Dados geoespaciais (lat, long etc)
  • Data e hora (dia, mês, semana, ano ..)
  • Séries temporais, web, etc ...
  • Técnicas de redução dimensional ..
  • .....(E muitos outros)

Transformações de recursos (transformá-las para fazer sentido)

  • Normalização e mudança de distribuição (Dimensionamento)
  • Interações
  • Preenchendo os valores ausentes (preenchimento médio, etc.)
  • .....(E muitos outros)

Seleção de recursos (construindo seu modelo com esses recursos selecionados)

  • Abordagens estatísticas
  • Seleção por modelagem
  • Pesquisa em grade
  • Validação cruzada
  • .....(E muitos outros)

Espero que isto ajude...

Veja os links compartilhados por outras pessoas. Eles são bastante agradáveis ​​...

Aditya
fonte
boa maneira de responder +1 para isso.
Toros91 # 1448
Kudos para esta comunidade .. aprendendo muito com ele ..
Aditya
1
É verdade que homem, sou membro desde outubro de 2017. Aprendi muitas coisas. Espero que seja o mesmo para você também. Eu tenho lido suas respostas, elas são boas. BTT desculpe pela coisa pela qual você passou no SO. Eu não conseguia ver a coisa toda, mas como Neil Slater disse bem que você manteve a calma até o fim. Mantem! Ainda temos um longo caminho a percorrer. :)
Toros91
Qual é a ordem em que estes devem ser processados? Além de limpeza e divisão de dados. Qual dos 5 é o primeiro passo?
technazi
A divisão de dados é feita no final, quando você se certifica de que os dados estão prontos para serem enviados para modelagem ... E, como não há pedidos para as coisas acima mencionadas, elas se sobrepõem algumas vezes (extração de recursos, engenharia de recursos, Transformação de recurso.), Mas a seleção de recurso certamente é feita após a divisão dos dados no trem como validação, desde que você esteja usando a métrica dos modelos ou algo equivalente em um conjunto de dados de validação (para medir seu desempenho) para validação cruzada ou algo equivalente. É possível iniciar iterativamente soltando colunas e veja imp colsorimp
Aditya
4

Como Aditya disse, existem três termos relacionados a recursos que às vezes são confundidos. Vou tentar e dar uma explicação resumida para cada um deles:

  • Extração de recursos: geração de recursos a partir de dados que estão em um formato difícil de analisar diretamente / não são diretamente comparáveis ​​(por exemplo, imagens, séries temporais, etc.) No exemplo de uma série temporal, alguns recursos simples podem ser: exemplo: duração das séries temporais, período, valor médio, padrão, etc.
  • Transformação de recurso: transformação de recursos existentes para criar novos com base nos antigos. Uma técnica usada popularmente para redução de dimensionalidade é a Análise de Componentes Principais (pca), que usa alguma transformação ortogonal para produzir um conjunto de variáveis ​​linearmente não correlacionadas, com base no conjunto inicial de variáveis.
  • Seleção de recurso: seleção dos recursos com a "importância" / influência mais alta na variável de destino, de um conjunto de recursos existentes. Isso pode ser feito com várias técnicas: por exemplo, regressão linear, árvores de decisão, cálculo de pesos de "importância" (por exemplo, pontuação de Fisher, ReliefF)

Se a única coisa que você deseja alcançar é a redução da dimensionalidade em um conjunto de dados existente, você pode usar os métodos de transformação ou seleção de recursos. Mas se você precisa conhecer a interpretação física dos recursos que identifica como "importante" ou está tentando limitar a quantidade de dados que precisam ser coletados para sua análise (você precisa de todo o conjunto inicial de recursos para a transformação de recursos), somente a seleção de recursos pode funcionar.

Você pode encontrar mais detalhes sobre Seleção de recursos e Redução de dimensionalidade nos seguintes links:

missrg
fonte
3

Eu acho que são duas coisas diferentes,

Vamos começar com a seleção de recursos :

Essa técnica é usada para selecionar os recursos que explicam o máximo da variável de destino (tem uma correlação com a variável de destino). Esse teste é executado imediatamente antes de o modelo ser aplicado aos dados.

Para explicar melhor, vamos dar um exemplo: há 10 variáveis ​​de recurso e 1 variável de destino, 9 recursos explicam 90% da variável de destino e 10 recursos juntos explicam 91% da variável de destino. Portanto, a variável 1 não está fazendo muita diferença; portanto, você tende a removê-la antes da modelagem (também é subjetiva para os negócios). Também posso ser chamado como Importância do Preditor.

Agora vamos falar sobre extração de recursos ,

Que é usado no aprendizado não supervisionado, extração de contornos em imagens, extração de dois gramas de um texto, extração de fonemas da gravação de texto falado. Quando você não sabe nada sobre os dados, como nenhum dicionário de dados, há muitos recursos, o que significa que os dados não estão em um formato compreensível. Em seguida, tente aplicar esta técnica para obter alguns recursos que explicam a maioria dos dados. A extração de recursos envolve uma transformação dos recursos, o que geralmente não é reversível porque algumas informações são perdidas no processo de redução de dimensionalidade.

Você pode aplicar a Extração de Recurso nos dados fornecidos para extrair recursos e, em seguida, aplicar a Seleção de Recurso em relação à Variável de Destino para selecionar o subconjunto que pode ajudar na criação de um bom modelo com bons resultados.

você pode passar por esses Link-1 , Link-2 para entender melhor.

podemos implementá-los em R, Python, SPSS.

informe-me se precisar de mais esclarecimentos.

Toros91
fonte
3

Os dois são muito diferentes: a seleção de recursos reduz de fato as dimensões, mas a extração de recursos adiciona dimensões calculadas a partir de outros recursos.

Para dados de painel ou séries temporais, geralmente se tem a variável datetime e não se deseja treinar a variável dependente na própria data, pois essas não ocorrerão no futuro. Portanto, você deve eliminar a data e hora: eliminação de recursos.

Por outro lado, o dia da semana / dia do fim de semana pode ser muito relevante, portanto, precisamos calcular o status do dia da semana a partir da data e hora: extração de recursos.

vinnief
fonte
0

Uma parte crítica do sucesso de um projeto de Machine Learning é apresentar um bom conjunto de recursos para você treinar. Esse processo, chamado de engenharia de recursos, envolve:

• Seleção de recursos: selecione os recursos mais úteis para treinar entre os recursos existentes.
• Extração de recursos: combinando recursos existentes para produzir um mais útil (como vimos anteriormente, algoritmos de redução de dimensionalidade podem ajudar).
• Criando novos recursos reunindo novos dados

Citação: "Aprendizado prático com o SciKit-Learn, Keras e Tensorflow - Aurelien Geron"

Aditya
fonte