Glossário

Engenharia de recursos

Aumenta a precisão da aprendizagem automática com engenharia especializada de caraterísticas. Aprende técnicas para criar, transformar e selecionar caraterísticas com impacto.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A engenharia de caraterísticas é o processo crucial de seleção, transformação e criação de caraterísticas a partir de dados brutos para os tornar mais adequados aos modelos de aprendizagem automática (ML). Envolve a utilização de conhecimentos de domínio e técnicas de análise de dados para criar entradas que representem melhor o problema subjacente, melhorando, em última análise, o desempenho, a precisão e a interpretabilidade do modelo. Pensa nisto como preparar os melhores ingredientes para uma receita; mesmo o chefe (ou modelo) mais competente tem dificuldades com ingredientes de fraca qualidade(dados de treino). Este passo é frequentemente considerado uma das partes mais críticas e demoradas do fluxo de trabalho de ML.

Porque é que a engenharia de funcionalidades é importante?

Os dados brutos recolhidos no mundo real raramente estão prontos para utilização direta em algoritmos de aprendizagem automática. Podem conter valores em falta, inconsistências, informações irrelevantes ou estar em formatos inadequados para o consumo de modelos (como texto ou dados categóricos). A engenharia de caraterísticas aborda estas questões através de:

  • Melhora o desempenho do modelo: As caraterísticas bem concebidas realçam os padrões relevantes para o problema, facilitando a aprendizagem e a generalização dos modelos.
  • Reduzir a complexidade: Pode simplificar os modelos fornecendo entradas mais informativas, reduzindo por vezes a necessidade de arquitecturas ou algoritmos de deteção de objectos altamente complexos.
  • Manuseamento de diversos tipos de dados: Fornece métodos para converter vários tipos de dados (texto, imagens, categóricos) em representações numéricas que os algoritmos compreendem. Para mais leituras, explora as técnicas de pré-processamento de dados.
  • Melhorar a interpretabilidade: As caraterísticas significativas podem, por vezes, facilitar a compreensão da razão pela qual um modelo faz determinadas previsões, contribuindo para uma IA explicável (XAI).

Técnicas comuns de engenharia de caraterísticas

Várias técnicas são abrangidas pelo conceito de engenharia de caraterísticas:

  • Imputação: Tratamento de dados em falta através do preenchimento de lacunas com valores estimados (por exemplo, média, mediana ou métodos mais sofisticados). O tratamento de dados em falta é um primeiro passo comum.
  • Escala e normalização: Ajusta o intervalo ou a distribuição das caraterísticas numéricas (por exemplo, escala Mín-Máx, normalização da pontuação Z) para evitar que as caraterísticas com valores maiores dominem o processo de aprendizagem.
  • Codificação de variáveis categóricas: Converte dados não numéricos (como as categorias 'vermelho', 'verde', 'azul') em formatos numéricos (por exemplo, One-Hot Encoding, Label Encoding). Ver codificação de dados categóricos.
  • Criação de caraterísticas (geração): Derivar novos elementos a partir dos existentes com base no conhecimento do domínio ou na análise da interação (por exemplo, criar "idade" a partir de "date_of_birth", combinar "altura" e "peso" em "IMC" ou extrair elementos de texto utilizando TF).
  • Binning (Discretização): Agrupa dados numéricos contínuos em compartimentos ou intervalos discretos.
  • Transformação de log: Aplica uma transformação logarítmica para lidar com distribuições de dados distorcidas. Explora as transformações de dados para obter mais detalhes.
  • Seleção de caraterísticas: Identifica e mantém apenas as caraterísticas mais relevantes, descartando as redundantes ou irrelevantes para simplificar o modelo e potencialmente melhorar o desempenho. Está estreitamente relacionada com a redução da dimensionalidade.

Engenharia de caraterísticas vs. Extração de caraterísticas

Embora sejam frequentemente utilizadas de forma indistinta, a engenharia de caraterísticas e a extração de caraterísticas têm nuances distintas.

  • Engenharia de caraterísticas: Um processo mais amplo que inclui a extração de caraterísticas, mas também envolve a criação manual de novas caraterísticas, a transformação das existentes com base na experiência do domínio e a seleção das melhores caraterísticas. Requer frequentemente criatividade e um conhecimento profundo dos dados e do problema.
  • Extração de caraterísticas: Centra-se especificamente na transformação automática de dados brutos, frequentemente de elevada dimensão (como imagens ou leituras brutas de sensores), num conjunto de caraterísticas de dimensão inferior e mais fácil de gerir. Técnicas como a Análise de Componentes Principais (PCA) ou a aprendizagem automática de caraterísticas efectuada por camadas em Redes Neuronais Convolucionais (CNN) são exemplos de extração de caraterísticas.

Na sua essência, a extração de caraterísticas é frequentemente uma ferramenta utilizada no âmbito do processo mais vasto de engenharia de caraterísticas.

Aplicações no mundo real

  1. Manutenção Preditiva: Na indústria transformadora, os dados brutos dos sensores (vibração, temperatura, pressão) das máquinas podem ser ruidosos e altamente dimensionais. A engenharia de caraterísticas pode envolver o cálculo de médias móveis, desvios padrão em janelas de tempo, caraterísticas do domínio da frequência (como a FFT) ou a criação de caraterísticas que indiquem picos ou alterações súbitas. Estas caraterísticas de engenharia facilitam a um modelo de ML a previsão de potenciais falhas do equipamento antes de estas ocorrerem, tal como discutido em IA no fabrico.
  2. Previsão da rotatividade de clientes: Para prever quais os clientes que podem deixar de utilizar um serviço, os dados brutos incluem registos de utilização, dados demográficos, histórico de bilhetes de apoio e registos de compras. A engenharia de caraterísticas pode envolver a criação de caraterísticas como "duração média da sessão", "tempo desde a última compra", "número de pedidos de apoio no último mês", "rácio de feedback positivo e negativo" ou "valor do tempo de vida do cliente". Estas caraterísticas derivadas fornecem sinais mais ricos para prever a rotatividade em comparação com os registos em bruto. Isto é relevante para a IA nas finanças e no retalho.

Engenharia de recursos e Ultralytics

Enquanto modelos avançados como o Ultralytics YOLO se destacam em tarefas como a deteção de objectos e a segmentação de imagens, aprendendo automaticamente caraterísticas visuais relevantes através das suas arquitecturas de redes neurais profundas(espinha dorsal, pescoço, cabeça), os princípios da engenharia de caraterísticas continuam a ser relevantes. Por exemplo, o pré-processamento de imagens de entrada (por exemplo, equalização de histograma para iluminação variável, redução de ruído usando bibliotecas como OpenCV ou aplicação de aumentos de dados específicos adaptados ao domínio do problema) antes de as alimentar num modelo YOLO é uma forma de engenharia de caraterísticas que pode melhorar a robustez e o desempenho do modelo. Além disso, os resultados do YOLO (como coordenadas de caixas delimitadoras, classes de objectos, contagens) podem ser transformados em caraterísticas para tarefas a jusante ou combinados com outras fontes de dados para análises mais complexas, talvez geridas em plataformas como o Ultralytics HUB, que ajuda a organizar conjuntos de dados e modelos. Explora a documentação e os tutoriais Ultralytics para obteres mais informações sobre a utilização de modelos, formação personalizada e pré-processamento de dados anotados. Ferramentas como o Featuretools também podem ajudar a automatizar partes do processo de engenharia de caraterísticas, alinhando-se com os conceitos do Automated Machine Learning (AutoML). A engenharia eficaz de recursos, mesmo com modelos poderosos de aprendizado profundo, continua sendo um aspeto fundamental das práticas bem-sucedidas de MLOps.

Lê tudo