9.0 KiB
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.