freeCodeCamp/guide/portuguese/machine-learning/feature-engineering/index.md

9.0 KiB
Raw Blame History

title localeTitle
Feature Engineering Engenharia de recursos

Engenharia de recursos

Machine Learning funciona melhor com dados bem formados. A engenharia de recursos descreve certas técnicas para garantir que estamos trabalhando com a melhor representação possível dos dados coletados.

Por que a engenharia de recursos é útil?

  • A quantidade e a qualidade dos recursos afetam o poder preditivo do modelo. Mais recursos de alta qualidade resultam em um modelo melhor.
  • Crie modelos melhores pegando os dados que você possui e ampliando-os com informações adicionais relevantes ao assunto obtidas em outro lugar.
  • Novos recursos podem levar a "avanços" na capacidade do modelo de prever um resultado robusto.

Advertências para a engenharia de recursos

  • A criação de novos recursos com base em recursos conhecidos pode levar à multicolinearidade, uma situação em que dois recursos são linearmente relacionados. Isso equivale a "mergulhar duas vezes" em um modelo e pode levar a ajustes excessivos.
  • Mais nem sempre é melhor. Adicionar recursos com recursos preditivos ruins pode aumentar o tempo computacional sem adicionar benefícios ao modelo.

Exemplos de engenharia de recursos:

  • Se você tiver um recurso de "data", tente agrupá-lo em "dia da semana", "semana do ano" ou "mês do ano". Da mesma forma, crie um recurso AM / PM a partir de "hora do dia".
  • Execute uma redução de dados como o PCA e adicione os vetores do PCA aos dados como novos recursos.
  • Produza novos recursos transformando numericamente os recursos atuais. Exemplos seriam dados de transformação de log ou codificação de recursos categóricos como números (convert baixo / médio / alto para 1/2/3).
  • Use dados do censo para criar novos recursos (como renda média), supondo que seu conjunto de dados contenha informações de localização (cidade, estado, município etc.).

A seguir, duas técnicas de engenharia de recursos: dimensionamento e seleção.

Escala de recursos

Vamos supor que seus dados contenham o peso e a altura das pessoas. Os números brutos dessas duas características têm uma grande diferença (por exemplo, 80 kg e 180 cm, ou 175 lbs vs 5.9 pés), o que pode influenciar o resultado de um determinado algoritmo de Aprendizado de Máquina. Este é especialmente o caso de algoritmos que usam funções de distância .

Para corrigir isso, representamos os números brutos em um intervalo de 0 a 1. Podemos conseguir isso usando a fórmula: (x - xMin) / (xMax - xMin) .

Usando essa fórmula, precisamos prestar atenção especial aos valores discrepantes, pois eles podem afetar drasticamente o resultado, aumentando o xMax e reduzindo o xMin. É por isso que os valores discrepantes são frequentemente eliminados antes do dimensionamento.

Seleção de Recurso

É tudo sobre como identificar o subconjunto de recursos responsáveis pelas tendências que observamos em nossos dados.

Por que devemos nos importar? A maldição da dimensionalidade é um grande inimigo em tempos de Big Data. Não podemos usar todas as nossas dezenas ou centenas de recursos. Isso não apenas aumentaria a dimensionalidade de nossos dados através do telhado (2 ^ n, onde n é o número de recursos), mas também não faria sentido em casos de uso específicos. Imagine querer prever o tempo de amanhã: será mais provável que a tendência do tempo dos últimos dias seja mais importante neste cenário do que os bebês nascidos nos últimos dias. Assim, você poderia facilmente eliminar o recurso dos bebês.

Mas esqueça os bebês por enquanto, vamos mergulhar em mais detalhes.

Filtragem e envolvimento

Aqui nós descrevemos duas abordagens gerais. Os métodos de filtragem atuam independentemente do algoritmo de aprendizado escolhido e os métodos de agrupamento incorporam o aluno.

Os métodos de filtro selecionam o subconjunto de recursos antes de injetar os dados em seu algoritmo ML. Eles usam, por exemplo, a correlação com a variável a ser prevista para identificar qual subconjunto de recursos escolher. Esses métodos são relativamente rápidos para serem computados, mas não se aproveitam do viés do aluno, pois a filtragem está acontecendo independentemente do modelo ML escolhido.

Os algoritmos de busca de moldagem aproveitam o viés de aprendizado, pois incorporam o modelo ML escolhido. Esses métodos funcionam removendo o recurso que tem a menor alteração na pontuação quando removido e repetindo esse processo até que a pontuação mude significativamente. Isso significa executar o algoritmo de aprendizado várias vezes, o que pode levar a tempos de computação significativos. Esses métodos também têm o perigo de overfitting, já que você está basicamente otimizando o conjunto de recursos baseado no modelo ML escolhido.

Relevância

Outra maneira de selecionar recursos é usar o BOC (Bayes Optimal Classifier) . A regra dos polegares aqui é:

  • um recurso é altamente relevante se a remoção de degrada o BOC
  • um recurso é pouco relevante se não for muito relevante e adicioná-lo em combinação com outros recursos melhora o BOC
  • caso contrário, um recurso é irrelevante

Bem, nem sempre. Depende da quantidade de dados que você tem e da força dos sinais concorrentes. Você pode ajudar seu algoritmo a "focar" no que é importante destacando-o de antemão.

  • Variável de indicador dos limites: digamos que você esteja estudando as preferências de bebidas alcoólicas dos consumidores dos EUA e seu conjunto de dados tenha um recurso de idade. Você pode criar uma variável indicadora para idade> = 21 para distinguir os indivíduos que estavam acima da idade legal para beber.
  • Variável de indicador de vários recursos: Você está prevendo preços de imóveis e você tem os recursos n quartos e n banheiros. Se as casas com 2 camas e 2 banheiros comandarem um prêmio como propriedades de aluguel, você poderá criar uma variável de indicador para sinalizá-las.
  • Variável de indicador para eventos especiais: você está modelando as vendas semanais para um site de comércio eletrônico. Você pode criar duas variáveis indicadoras para as semanas de Black Friday e Christmas.
  • Variável de indicador para grupos de classes: você está analisando conversões de websites e seu conjunto de dados tem a origem de tráfego de recurso categórico . Você pode criar uma variável indicadora de tráfego pago marcando observações com valores de origem de tráfego de "Anúncios do Facebook" ou "Google Adwords".

Recursos de interação

O próximo tipo de engenharia de recursos envolve destacar as interações entre dois ou mais recursos.

Você já ouviu a frase "a soma é maior que as partes?" Bem, alguns recursos podem ser combinados para fornecer mais informações do que como indivíduos.

Especificamente, procure oportunidades para obter a soma, a diferença, o produto ou o quociente de vários recursos.

* Observação: não recomendamos o uso de um loop automatizado para criar interações para todos os seus recursos. Isso leva à "explosão de recursos".

  • Soma de dois recursos: digamos que você deseja prever receita com base em dados preliminares de vendas. Você tem os recursos de vendas de canetas azuis e canetas pretas de vendas. Você poderia somar esses recursos se você se preocupasse apenas com as vendas totais.
  • Diferença entre dois recursos: você tem a data de construção da casa e a data de compra da casa. Você pode fazer a diferença para criar a idade da feature house na compra.
  • Produto de dois recursos: você está executando um teste de precificação e tem o preço do recurso e uma conversão de variável do indicador. Você pode pegar o produto deles para criar os ganhos do recurso.
  • Quociente de dois recursos: você tem um conjunto de dados de campanhas de marketing com os recursos n cliques e n impressões. Você pode dividir cliques por impressões para criar clique com a taxa, o que lhe permite comparar através de campanhas de volume diferente.

Mais Informações: