A engenharia de características ou extração de características ou descoberta de características é o processo de usar o conhecimento do domínio para extrair características (informações, propriedades, atributos) de dados brutos. A motivação é usar esses recursos extras para melhorar a qualidade dos resultados de um processo de aprendizado de máquina, em comparação com o fornecimento apenas de dados brutos para o processo de aprendizado de máquina.

Processo O processo de engenharia de características é:

Brainstorming ou teste de características Decisão de quais características criar Criação das características Testando o impacto das características identificadas na tarefa Melhoria das características, se necessário Repetição

Características construídas típicas A lista a seguir fornece algumas maneiras típicas de fabricar características úteis

Transformações numéricas (como calcular frações ou mudar a escala) Codificação de categorias como one-hot-encoder ou ou target-encoder (para dados categóricos) Agrupamento Valores agregados por grupos Análise de componentes principais (para dados numéricos) Construção de características: construir novos parâmetros "físicos", baseados no conhecimento, relevantes para o problema. Por exemplo, em física, a construção de números adimensionais, como número de Reynolds em dinâmica de fluidos, o número de Nusselt em transferência de calor, o número de Arquimedes em sedimentação, a construção de primeiras aproximações da solução, como resistência analítica de soluções de materiais em mecânica, etc.

Relevância As características variam em importância. Mesmo características relativamente insignificantes podem contribuir para um modelo. A seleção de características pode reduzir o número de características para evitar que um modelo se torne muito específico para o conjunto de dados de treinamento (overfitting).

Explosão A explosão de características ocorre quando o número de características identificadas cresce de forma inadequada. Causas comuns incluem:

Modelos de recursos - a implementação de modelos de características em vez de codificar novas características Combinações de características - combinações que não podem ser representadas por um sistema linear

A explosão de características pode ser limitada por meio de técnicas como: regularização, métodos de kernel e seleção de características.

Automação A automação da engenharia de características é um tópico de pesquisa que remonta à década de 1990. Desde 2016 estão disponíveis comercialmente softwares de aprendizado de máquina que incorporam engenharia de características automatizada. A literatura acadêmica relacionada pode ser dividida em dois tipos:

O aprendizado de árvore de decisão multi-relacional (MRDTL, na sigla em inglês) usa um algoritmo supervisionado que é semelhante a uma árvore de decisão. Deep Feature Synthesis usa métodos mais simples.

Aprendizado de árvore de decisão multi-relacional (MRDTL) O MRDTL gera características na forma de consultas SQL adicionando cláusulas sucessivamente às consultas. Por exemplo, o algoritmo pode começar comSELECT COUNT(*) FROM ATOM t1 LEFT JOIN MOLECULE t2 ON t1.mol_id = t2.mol_id GROUP BY t1.mol_idA consulta pode ser refinada sucessivamente adicionando condições, como "WHERE t1.charge <= -0,392".

No entanto, a maioria dos estudos de MRDTL baseiam as implementações em bancos de dados relacionais, o que resulta em muitas operações redundantes. Essas redundâncias podem ser reduzidas usando técnicas como propagação de id de tupla. A eficiência pode ser aumentada usando atualizações incrementais, o que elimina redundâncias.

Implementações de código aberto Existem várias bibliotecas e ferramentas de código aberto que automatizam a engenharia de características em dados relacionais e séries temporais:

featuretools é uma biblioteca Python para transformar séries temporais e dados relacionais em matrizes de recursos para aprendizado de máquina. OneBM ou One-Button Machine combina transformações de características e seleção de características em dados relacionais com técnicas de seleção de características.

A comunidade getML é uma ferramenta de código aberto para engenharia de características automatizada em séries temporais e dados relacionais. É implementada em C/C++ com uma interface Python. Demonstrou ser pelo menos 60 vezes mais rápido que tsflex, tsfresh, tsfel, featuretools ou kats. tsfresh é uma biblioteca Python para extração de características em dados de séries temporais. Ela avalia a qualidade das características usando testes de hipóteses. tsflex é uma biblioteca Python de código aberto para extrair características de dados de séries temporais. Apesar de ser 100% escrito em Python, demonstrou ser mais rápida e mais eficiente em termos de memória do que tsfresh, seglearn ou tsfel. seglearn é uma extensão para dados de séries temporais sequenciais e multivariados para a biblioteca em Python scikit-learn. tsfel é um pacote em Python para extração de características em dados de séries temporais. kats é um kit de ferramentas Python para analisar dados de séries temporais.

Síntese profunda de características O algoritmo de síntese profunda de características (DFS) venceu 615 de 906 equipes humanas em uma competição.

Repositório de características O Feature Store é um repositório onde as características são armazenadas e organizadas com o propósito explícito de serem usadas para treinar modelos (por cientistas de dados) ou fazer previsões (por aplicativos que possuem um modelo treinado). É um local central onde você pode criar ou atualizar grupos de características criadas a partir de várias fontes de dados diferentes ou criar e atualizar novos conjuntos de dados desses grupos de características para treinar modelos ou para uso em aplicativos que não desejam calcular as características, mas apenas recuperá-las quando precisar delas para fazer previsões.

Um repositório de características inclui a capacidade de armazenar código usado para gerar características, aplicar o código a dados brutos e fornecer essas características a modelos mediante solicitação. Características úteis incluem controle de versão de características e políticas que regem as circunstâncias em que as características podem ser usadas.

Os repositórios de características podem ser ferramentas de software independentes ou incorporadas a plataformas de aprendizado de máquina.

Ver também

Covariável Transformação de dados Extração de características Aprendizado de características Truque de hash Método do kernel Lista de conjuntos de dados para pesquisa em aprendizado de máquina Mapeamento do espaço Lasso (estatística)

Referências

Leitura adicional

Categoria:Análise de dados Categoria:Aprendizagem de máquina