Este documento descreve como o Feature Transform Engine realiza a engenharia de funcionalidades. O Feature Transform Engine realiza a seleção e as transformações de funcionalidades. Se a seleção de funcionalidades estiver ativada, o Feature Transform Engine cria um conjunto classificado de funcionalidades importantes. Se as transformações de funcionalidades estiverem ativadas, o Feature Transform Engine processa as funcionalidades para garantir que a entrada para a preparação e a publicação do modelo é consistente. O Feature Transform Engine pode ser usado de forma autónoma ou em conjunto com qualquer um dos fluxos de trabalho de preparação tabular. É compatível com frameworks TensorFlow e não TensorFlow.
Entradas
Forneça as seguintes entradas ao Feature Transform Engine:
- Dados não processados (conjunto de dados do BigQuery ou CSV).
- Configuração da divisão de dados.
- Configuração da seleção de funcionalidades.
- Configuração da transformação de atributos.
Resultados
O Feature Transform Engine gera as seguintes saídas:
dataset_stats
: estatísticas que descrevem o conjunto de dados não processados. Por exemplo,dataset_stats
dá o número de linhas no conjunto de dados.feature_importance
: a pontuação de importância das funcionalidades. Este resultado é gerado se a seleção de funcionalidades estiver ativada.materialized_data
, que é a versão transformada de um grupo de divisão de dados que contém a divisão de preparação, a divisão de avaliação e a divisão de teste.training_schema
: Esquema de dados de preparação na especificação OpenAPI, que descreve os tipos de dados dos dados de preparação.instance_schema
: esquema de instância na especificação OpenAPI, que descreve os tipos de dados dos dados de inferência.transform_output
: metadados da transformação. Se usar o TensorFlow para a transformação, os metadados incluem o gráfico do TensorFlow.
Passos de processamento
O Feature Transform Engine executa os seguintes passos:
- Gerar divisões de conjuntos de dados para preparação, avaliação e testes.
- Gerar estatísticas do conjunto de dados de entrada
dataset_stats
que descrevem o conjunto de dados não processado. - Realizar seleção de funcionalidades.
- Processar a configuração de transformação usando as estatísticas do conjunto de dados, resolvendo parâmetros de transformação automáticos em parâmetros de transformação manuais.
- Transformar caraterísticas não processadas em caraterísticas de engenharia. São feitas diferentes transformações para diferentes tipos de funcionalidades.
Seleção de funcionalidades
O objetivo principal da seleção de elementos é reduzir o número de elementos usados no modelo. O conjunto de funcionalidades reduzido capta a maioria das informações da etiqueta de forma mais compacta. A seleção de funcionalidades permite reduzir o custo da preparação e da publicação de modelos sem afetar significativamente a qualidade do modelo.
Se ativar a seleção de funcionalidades, o Feature Transform Engine atribui uma pontuação de importância a cada funcionalidade. Pode optar por gerar os resultados de importância do conjunto completo de funcionalidades ou de um subconjunto reduzido das funcionalidades mais importantes.
O Vertex AI oferece os seguintes algoritmos de seleção de funcionalidades:
- Informação mútua ajustada (AMI)
- Maximizar informações mútuas condicionais (CMIM)
- Joint Mutual Information Maximization (JMIM)
- Máxima relevância, mínima redundância (MRMR)
Tenha em atenção que nenhum algoritmo de seleção de caraterísticas funciona sempre melhor em todos os conjuntos de dados e para todos os fins. Se possível, execute todos os algoritmos e combine os resultados.
Informações mútuas ajustadas (AMI)
O AMI é um ajuste da pontuação de informações mútuas (MI) para ter em conta a probabilidade. Tem em conta o facto de o MI ser geralmente mais elevado para duas agrupamentos com um número maior de clusters, independentemente de existirem efetivamente mais informações partilhadas.
A AMI é boa a detetar a relevância das caraterísticas e da etiqueta, mas é insensível à redundância de caraterísticas. Considere usar o AMI se houver muitas funcionalidades (por exemplo, mais de 2000) e não houver muita redundância de funcionalidades. É mais rápido do que os outros algoritmos descritos aqui, mas pode selecionar funcionalidades redundantes.
Maximizar a informação mútua condicional (CMIM)
O CMIM é um algoritmo ganancioso que escolhe funcionalidades iterativamente com base nas informações mútuas condicionais das funcionalidades candidatas relativamente às funcionalidades selecionadas. Em cada iteração, seleciona a funcionalidade que maximiza as informações mútuas mínimas com a etiqueta que ainda não foi capturada pelas funcionalidades selecionadas.
O CMIM é robusto no tratamento da redundância de funcionalidades e funciona bem em casos típicos.
Joint Mutual Information Maximization (JMIM)
O JMIM é um algoritmo ganancioso semelhante ao CMIM. O JMIM seleciona a funcionalidade que maximiza as informações mútuas conjuntas da nova funcionalidade e das funcionalidades pré-selecionadas com a etiqueta, enquanto o CMIM tem mais em conta a redundância.
O JMIM é um algoritmo de seleção de caraterísticas de alta qualidade.
Máxima relevância, mínima redundância (MRMR)
O MRMR é um algoritmo ganancioso que funciona de forma iterativa. É semelhante ao CMIM. Cada iteração escolhe a funcionalidade que maximiza a relevância relativamente à etiqueta, ao mesmo tempo que minimiza a redundância aos pares relativamente às funcionalidades selecionadas nas iterações anteriores.
O MRMR é um algoritmo de seleção de funcionalidades de alta qualidade.
O que se segue?
Depois de realizar a engenharia de funcionalidades, pode preparar um modelo para classificação ou regressão:
- Prepare um modelo com o AutoML ponto a ponto.
- Prepare um modelo com o TabNet.
- Prepare um modelo com Wide & Deep.