Detalhes da implementação do autoAI

AutoAI automaticamente prepara dados, aplica algoritmos, ou estimadores, e constrói pipelines de modelos mais adequados para o seu caso de dados e uso.

As seções a seguir descrevem alguns desses detalhes técnicos que entram na geração dos pipelines e fornecem uma lista de documentos de pesquisa que descrevem como o AutoAI foi projetado e implementado

Preparando os dados para treinamento (pré-processamento de dados)

Durante a preparação automática de dados ou pré-processamento, o AutoAI analisa os dados de treinamento e os prepara para seleção de modelo e geração do pipeline. A maioria dos conjuntos de dados contém valores ausentes mas algoritmos de aprendizado de máquina tipicamente não esperam valores ausentes. Uma exceção a esta regra é descrita na seção 3.4 do xgboost . Os algoritmos AutoAI executam várias imputações de valor omisso em seu conjunto de dados usando várias técnicas, tornando seus dados prontos para aprendizado de máquina. Além disso, o AutoAI detecta e categoriza recursos com base em seus tipos de dados, como categóricos ou numéricos. Ele explora estratégias de codificação e de ajuste de escala baseadas na categorização do recurso.

A preparação de dados envolve estas etapas:

Classificação de coluna de recurso

  • Detecta os tipos de colunas de recurso e os classifica como classe categórica ou numérica
  • Detecta vários tipos de valores ausentes (padrão, fornecidos pelo usuário, valores discrepantes)

Engenharia de recurso

  • Manipula linhas para as quais os valores de destino estão ausentes (eliminação (padrão) ou imputação de destino)
  • Elimina colunas de valor exclusivo (exceto data/hora e registros de data e hora)
  • Elimina colunas de valor constante

Pré-processamento (imputação e codificação de dados)

  • Aplica estratégias de imputação/codificação/ajuste de escala do Sklearn (separadamente em cada classe de recurso). Por exemplo, o método padrão atual para estratégias de imputação de valor omisso, que são usadas no produto são most frequent para variáveis categóricas e mean para variáveis numéricas.
  • Manipula etiquetas de conjunto de testes que não foram vistas no conjunto de treinamento
  • Recurso HPO: Otimiza as estratégias de imputação / encoding/escalonamento dado um conjunto de dados e algoritmo

Seleção automática de modelo

A segunda etapa em um treinamento de experimento de AutoAI é a seleção automatizada do modelo. O algoritmo de seleção de modelo automatizado usa a Alocação de Dados usando a estratégia de Limites Superiores. Esta abordagem aloca sequencialmente pequenos subconjuntos de dados de treinamento entre um grande conjunto de algoritmos. O objetivo é selecionar um algoritmo que dê exatidão quase ideal quando treinado em todos os dados, ao mesmo tempo em que minimiza o custo de amostras mal alocadas. O sistema atualmente suporta todos os algoritmos Scikit-learn e os populares algoritmos XGBoost e LightGBM . O treinamento e a avaliação de modelos em grandes conjuntos de dados é custoso. A abordagem de iniciar pequenos subconjuntos e alocar incrementalmente maiores em modelos que funcionam bem no conjunto de dados economizando tempo, sem sacrificar o desempenho.Algoritmos snap de aprendizado de máquina foram incluídos no sistema para aumentar o desempenho ainda mais.

Selecionando algoritmos para um modelo

Os algoritmos são selecionados para fazer a correspondência dos dados e da natureza do modelo, mas também podem balancear a precisão e a duração do tempo de execução, caso o modelo esteja configurado para essa opção. Por exemplo, os algoritmos Snap ML normalmente são mais rápidos para o treinamento do que os algoritmos Scikit-learn. Eles são muitas vezes os algoritmos preferidos AutoAI seleciona automaticamente para casos em que o treinamento é otimizado para um tempo de execução e precisão de execução mais curta. É possível selecioná-los manualmente se a velocidade do treinamento for uma prioridade. Para obter detalhes, consulte Documentação do Snap ML. Para uma discussão sobre quando os algoritmos SnapML são úteis, consulte esta postagem do blog sobre o uso de algoritmos SnapML .

Algoritmos usados para modelos de classificação

Esses algoritmos são os algoritmos padrão que são usados para seleção de modelo para problemas de classificação.

Tabela 1: algoritmos padrão para classificação
Algoritmo Descrição
Classificador de árvore de decisão Mapeia observações sobre um item (representado em ramificações) para conclusões sobre o valor de destino do item (representado em folhas). Suporta etiquetas binárias e multiclasses, e ambos os recursos contínuos e categóricos.
Classificador de árvores extras Um algoritmo médio baseado em árvores de decisão escolhidas a esmo.
Classificador de Árvore Boost Gradiente Produz um modelo de predição de classificação na forma de um conjunto de árvores de decisão. Ele suporta etiquetas binárias e ambos os recursos contínuos e categóricos.
Classificador LGBM Estrutura de gradient boosting que usa o algoritmo de aprendizado baseado em árvore de folha a folha (horizontal).
Regressão Logística Analisa um conjunto de dados no qual uma ou mais variáveis independentes determinam um dos dois resultados. Somente regressão logística binária é suportada
Classificador de Floresta Aleatória Constrói diversas árvores de decisão para produzir o rótulo que é um modo de cada árvore de decisão. Ele suporta etiquetas binárias e multiclasses, e ambos os recursos contínuos e categóricos.
SnapDecisionTreeClassifier Este algoritmo fornece um classificador de árvore de decisão usando a biblioteca IBM Snap ML.
SnapLogisticRegression Este algoritmo fornece regressão logística regularizada usando o solver IBM Snap ML.
SnapRandomForestClassifier Este algoritmo fornece um classificador de floresta aleatória usando a biblioteca IBM Snap ML.
SnapSVMClassifier Este algoritmo fornece uma máquina vetorial de suporte regularizado usando o solver IBM Snap ML.
Classificador XGBoost Procedimento preciso que pode ser usado para problemas de classificação. Os modelos XGBoost são usados em várias áreas, incluindo classificação de pesquisa web e ecologia.
SnapBoostingMachineClassifier Máquina de boosting para tarefas de classificação binária e de várias classes que combinam árvores de decisão binárias com modelos lineares com recursos de fourier aleatórios

Algoritmos usados para modelos de regressão

Esses algoritmos são os algoritmos padrão que são usados para a seleção automática de modelo para problemas de regressão

Tabela 2: algoritmos padrão para regressão
Algoritmo Descrição
Regressão de Árvore de Decisão Mapeia observações sobre um item (representado nas ramificações) para conclusões sobre o valor de destino do item (representado nas folhas). Suporta recursos contínuos e categóricos.
Regressão de árvores extras Um algoritmo médio baseado em árvores de decisão escolhidas a esmo.
Regressão de Gradient Boosting Produz um modelo de predição de regressão na forma de uma combinação de árvores de decisão. Suporta recursos contínuos e categóricos.
Regressão LGBM Estrutura de gradient boosting que usa algoritmos de aprendizado baseados em árvore.
Regressão linear Modela o relacionamento linear entre uma variável dependente escalar y e uma ou mais variáveis explicativas (ou variáveis independentes) x.
Regressão aleatória da floresta Constrói diversas árvores de decisão para produzir a predição média de cada árvore de decisão. Suporta recursos contínuos e categóricos.
Cordilheira A regressão Ridge é semelhante a Ordinary Least Squares, mas impõe uma penalidade no tamanho de coeficientes.
SnapBoostingMachineRegressor Este algoritmo fornece uma máquina impulsionadora usando a biblioteca da IBM Snap ML que pode ser usada para construir um conjunto de árvores de decisão.
SnapDecisionTreeRegressor Este algoritmo fornece uma árvore de decisão usando a biblioteca IBM Snap ML.
SnapRandomForestRegressor Este algoritmo fornece uma floresta aleatória usando a biblioteca IBM Snap ML.
Regressão XGBoost O GBRT é um procedimento de prateleira preciso e efetivo que pode ser usado para problemas de regressão. Os modelos de Gradient Tree boosting são usados em várias áreas, incluindo classificação de procura na web e ecologia.

Métricas por tipo de modelo

As métricas a seguir estão disponíveis para medir a precisão de pipelines durante o treinamento e para pontuar dados.

Métricas de classificação binária

  • Precisão (padrão para classificação dos pipelines)
  • Roc auc
  • Precisão média
  • F
  • Perda de log negativo
  • Precisão
  • Rechamada

Métricas de classificação de multiclasse

As métricas para modelos de várias classes geram pontuações para o desempenho de um pipeline com relação à medição especificada Por exemplo, uma F1 pontuação média precisão (das predições feitas, quantas predições positivas estavam corretas) e rechamada (de todas as predições positivas possíveis, quantas foram preditas corretamente).

É possível refinar ainda mais uma pontuação qualificando-a para calcular a métrica fornecida globalmente (macro), por rótulo (micro) ou para ponderar um conjunto de dados desbalanceado para favorecer classes com mais representação.

  • As métricas com o qualificador micro calculam as métricas globalmente, contando o número total de verdadeiros positivos, falsos negativos e falsos positivos
  • Métricas com o qualificador macro calcula métricas para cada rótulo e localiza sua média não ponderada. Todos os rótulos são ponderados igualmente.
  • Métricas com o qualificador ponderado calculam métricas para cada rótulo e localizam sua média ponderada pela contribuição de cada classe. Por exemplo, em um conjunto de dados que inclui categorias para maçãs, pêssegos e ameixas, se houver muito mais instâncias de maçãs, a métrica ponderada dará maior importância para prever corretamente maçãs. Isso altera a macro para considerar o desequilíbrio de rótulo. Use uma métrica ponderada como F1-weighted para um conjunto de dados desbalanceado.

Estas são as métricas de classificação de multiclasse:

  • Precisão (padrão para classificação dos pipelines)
  • F1
  • F1 micro
  • F1 macro
  • F1 ponderado
  • Precisão
  • Precisão micro
  • Precisão macro
  • Precisão ponderada
  • Rechamada
  • Rechamada micro
  • Rechamada macro
  • Rechamada ponderada

Métricas de regressão

  • Erro quadrático médio de raiz negativa (padrão para classificação do pipeline)
  • Erro médio absoluto negativo
  • Erro de log de quadrado médio de raiz negativa
  • Variância explicada
  • Erro quadrático médio negativo
  • Erro de log de quadrado médio negativo
  • Erro absoluto de mediana negativa
  • R2

Engenharia de recursos automatizada

A terceira fase no processo do AutoAI é a engenharia de recursos automatizada. O algoritmo de engenharia de recursos automatizado é baseado no Cognito, descrito nos artigos de pesquisa Cognito: Engenharia de recursos automatizada para aprendizado supervisionado e Engenharia de recursos para modelagem preditiva usando aprendizado por reforço . O sistema explora várias opções de construção de recursos de maneira hierárquica e não exaustiva, maximizando progressivamente a precisão do modelo através de uma estratégia de exploração-exploração. Este método é inspirado na estratégia de "tentativa e erro" para a engenharia de recursos, mas conduzida por um agente autônomo no lugar de um humano.

Métricas usadas para importância do recurso

Para algoritmos de classificação e regressão baseados em árvore como Árvore De Decisão, Árvores Extras, Floresta Aleatória, XGBoost, Gradient Boosted e LGBM, apresentam importantes características são suas pontuações de importância inerente com base na redução do critério que é usada para selecionar pontos de divisão, e calculada quando esses algoritmos são treinados nos dados de treinamento.

Para algoritmos que não são de árvore, como Logistic Regression, LInear Regression, SnapSVM, e Ridge, as importâncias dos recursos são as importâncias dos recursos de um algoritmo Random Forest treinado com os mesmos dados de treinamento que o algoritmo que não é de árvore.

Para qualquer algoritmo, todas as importâncias de recursos estão no intervalo entre zero e um e foram normalizadas como a proporção com relação à importância máxima dos recursos.

Transformações de Dados

Para a engenharia de recursos, AutoAI usa uma abordagem de romance que explora várias opções de construção de recurso de maneira estruturada, não exaustiva, ao mesmo tempo que maximiza progressivamente a precisão do modelo usando o aprendizado de reforço. Isso resulta em uma sequência otimizada de transformações para os dados que melhor combinam com os algoritmos, ou algoritmos, da etapa de seleção do modelo. Esta tabela lista algumas das transformações que são usadas e algumas condições bem conhecidas sob as quais elas são úteis. Esta não é uma lista exaustiva de cenários em que a transformação é útil, pois isso pode ser complexo e difícil de interpretar. Por fim, os cenários listados não são uma explicação de como as transformações são selecionadas. A seleção de quais transformações aplicar é feita em uma tentativa e erro, de maneira orientada ao desempenho.

Tabela 3: transformações para a engenharia de recursos
Nome Código Function
Principle Component Analysis pca Reduzir dimensões de dados e realinhar em um sistema de coordenadas mais adequado. Ajuda a enfrentar a 'maldição da dimensionalidade' em dados correlacionados linearmente. Ele elimina a redundância e separa sinais significativos em dados.
Escalador padrão stdscaler Escala de dados de recursos para um intervalo padrão. Isso ajuda a eficácia e a eficiência de determinados algoritmos de aprendizagem e outras transformações como o PCA.
Logarítmica Posição do Log Reduz a assimetria direita nos recursos e os torna mais simétricos. A simetria resultante em recursos ajuda algoritmos a entender melhor os dados. Mesmo o ajuste de escala baseado em média e variância é mais significativo em dados simétricos. Além disso, ele pode capturar relacionamentos físicos específicos entre recurso e destino que é melhor descrito por meio de um logaritmo.
Raiz cúbica cbrt Reduz a assimetria direita em logaritmo parecido com dados, mas é mais fraca do que o log em seu impacto, o que pode ser mais adequado em alguns casos.Ele também é aplicável a valores negativos ou zero aos quais o log não se aplica.A raiz cúbica também pode mudar unidades, como reduzir volume para comprimento.
Raiz quadrada raiz quadrada Reduz a assimetria direita suave em dados. Ela é mais fraca do que log ou raiz cúbica. Ele funciona com zeros e reduz dimensões espaciais como área de comprimento.
Quadrado quadrado Reduz a defasagem de esquerda a uma medida moderada para tornar tais distribuições mais simétricas. Também pode ser útil na captura de certos fenômenos como o crescimento superlinear.
Produto produto Um produto de dois recursos pode expor uma relação não linear para prever melhor o valor de destino do que os valores individuais sozinhos. Por exemplo, o custo de item em número de itens que são vendidos é uma indicação melhor do tamanho de um negócio do que qualquer um desses sozinho.
XOR numérico nxor Esta transformação ajuda a capturar relacionamentos do tipo "disjunção exclusiva" entre variáveis, semelhante a um XOR bit a bit, mas em um contexto numérico geral.
Sum soma Às vezes, a soma de dois recursos é melhor correlacionada ao destino de predição do que os recursos sozinhos. Por exemplo, empréstimos de diferentes fontes, quando somados, proporcionam uma melhor ideia sobre o endividamento total do candidato a crédito.
Dividir divisão A divisão é um operado fundamental que é usado para expressar quantidades como o PIB bruto sobre a população (PIB per capita), representando a expectativa de vida média do país melhor do que o PIB sozinho ou a população sozinha.
Máximo máx Assume o mais alto de dois valores.
Arredondamento redondo Essa transformação pode ser vista como perturbação ou adicionar algum ruído para reduzir o excesso de ajuste que pode ser resultado de observações imprecisas.
Valor absoluto abs Considerar somente a magnitude e não o sinal de observação. Às vezes, a direção ou o sinal de uma observação não importa tanto quanto sua magnitude, como o deslocamento físico, ao considerar o combustível ou o tempo gasto no movimento real.
Tangente hiperbólica tanh A função de ativação não linear pode melhorar a precisão de predição, semelhante à das funções de ativação da rede neural.
seno sin Pode reorientar os dados para descobrir tendências periódicas, como movimentos harmônicos simples.
Cosine cos Pode reorientar os dados para descobrir tendências periódicas, como movimentos harmônicos simples.
Tangente tan A transformação de tangente trigonométrica geralmente é útil em combinação com outras transformações.
Aglomeração de recursos Aglomeração de recurso Agrupar diferentes recursos em grupos, com base na distância ou na afinidade, proporciona facilidade de classificação para o algoritmo de aprendizagem.
Sigmoide sigmoid A função de ativação não linear pode melhorar a precisão de predição, semelhante à das funções de ativação da rede neural.
Floresta de Isolamento isoforestanomaly Executa a clusterização usando uma Floresta de Isolamento para criar um novo recurso contendo uma pontuação de anomalia para cada amostra.
Palavra para vetor word2vec Esse algoritmo, que é usado para análise de texto, é aplicado antes de todas as outras transformações. É preciso um corpus de texto como entrada e saídas um conjunto de vetores. Ao transformar texto em representação numérica, ele pode detectar e comparar palavras semelhantes. Quando treinados com dados suficientes, o word2vec pode fazer previsões precisas sobre um significado ou um relacionamento de uma palavra em relação a outras palavras. As predições podem ser usadas para analisar texto e prever significado em aplicações de análise de sentimentos.

Hyperparameter Optimization

O estágio final no AutoAI é a otimização de hiperparâmetros. A abordagem do AutoAI otimiza os parâmetros dos pipelines de melhor desempenho das fases anteriores. Ele é feito explorando os intervalos de parâmetros desses oleodutos usando um otimizador de hiperparâmetro de caixa preta chamado RBFOpt. O RBFOpt é descrito no artigo de pesquisa RBFOpt: uma biblioteca de código aberto para otimização de caixa preta com avaliações de funções dispendiosas . O RBFOpt é adequado para experimentos AutoAI porque ele é construído para otimizações com avaliações custosas, como no caso de treinamento e pontuação de um algoritmo. A abordagem da RBFOpt constrói e refina iterativamente um modelo substituta da função objetiva desconhecida para convergir rapidamente apesar dos longos tempos de avaliação de cada iteração.


FAQs do AutoAI

A seguir estão as perguntas comumente feitas sobre a criação de um experimento do AutoAI.

Quantos pipelines são criados?

Dois parâmetros do AutoAI determinam o número de pipelines:

  • max_num_daub_ensembles: número máximo (classificado top-K pela seleção de modelo DAUB) do algoritmo selecionado ou tipos de estimador, por exemplo, LGBMClassifierEstimator, XGBoostClassifierEstimator ou LogisticRegressionEstimator para usar em composição de pipeline. O padrão é 1, em que somente o maior classificado por tipo de algoritmo de seleção de modelo é usado.

  • num_folds: Número de subconjuntos do conjunto de dados completos para treinar condutas, além do conjunto de dados completo. O padrão é 1 para treinar o conjunto de dados completo.

Para cada tipo de dobra e algoritmo, o AutoAI cria quatro condutas de refinamento aumentada, correspondentes a:

  1. Pipeline com parâmetros de sklearn padrão para esse tipo de algoritmo, 
  2. Pipeline com algoritmo otimizado usando HPO
  3. Pipeline com engenharia de recursos otimizados  
  4. Pipeline com engenharia de recurso otimizado e algoritmo otimizado usando HPO

O número total de gasodutos que são gerados é:

TotalPipelines= max_num_daub_ensembles * 4, if num_folds = 1:  
                       
TotalPipelines= (num_folds+1) * max_num_daub_ensembles * 4,  if num_folds > 1 :

Qual hyperparameter optimization é aplicado ao meu modelo?

AutoAI usa um algoritmo de pesquisa global baseado em modelo e sem derivativos, chamado RBfOpt, que é adaptado para o treinamento dispendioso do modelo de aprendizado de máquina e para as avaliações de pontuação exigidas pela otimização de hiperparâmetros (HPO). Em contraste com a otimização Bayesiana, que ajusta um modelo Gaussiano à função objetivo desconhecida, o RBfOpt ajusta um modo de função de base radial para acelerar a descoberta de configurações de hiperparâmetros que maximizam a função objetivo do problema de aprendizado de máquina disponível. Essa aceleração é alcançada minimizando o número de modelos de aprendizado de máquina de treinamento e pontuação caros e eliminando a necessidade de calcular derivados parciais.

Para cada tipo de dobra e algoritmo, o AutoAI cria dois pipelines que usam HPO para otimizar o tipo de algoritmo.

  • O primeiro é baseado na otimização deste tipo de algoritmo baseado no conjunto de dados pré-processado (imputed/encoded/scaled) (pipeline 2) acima).
  • O segundo é baseado na otimização do tipo de algoritmo baseado em engenharia de recursos otimizados do conjunto de dados pré-processados (imputados/codificados/escalados). 

Os valores de parâmetro dos algoritmos de todos os pipelines que são gerados pelo AutoAI são publicados em mensagens de status.

Para obter mais detalhes sobre o algoritmo RbfOpt, veja:

Como a significância do recurso é calculada

Ao configurar um experimento de classificação ou de regressão, é possível opcionalmente especificar como manipular recursos sem impacto no modelo. As opções são sempre remover o recurso, removê-lo quando ele melhorar a qualidade do modelo ou não removê-las, ou removê-las. A significância de variável é calculada da seguinte forma:

  • A importância do recurso é calculada sobre a amostra de dados
  • Alguns estimadores não têm recursos integrados para retornar as importâncias de recursos. Nesses casos, um estimador como RandomForest é usado para medir o impacto.
  • O número de recursos importa-se o valor de importância para um recurso for 0.0000000001 , mas houver um grande número de recursos de baixa importância (por exemplo, mais de 200), então deixá-los ou removê-los pode ter algum impacto nos resultados do experimento.

No modo automático, as etapas a seguir são usadas para validar que a remoção de recursos de baixa importância não afeta os resultados do experimento:

  • Se a remoção de todos os recursos com a importância 0 calculada tiver algum impacto na precisão do modelo, o algoritmo de Análise de Componente Principal será aplicado a esses recursos e selecionará os principais componentes K explicando os 90% de variância entre esses recursos insignificantes.
  • Em seguida, os componentes transformados são usados como novos recursos no lugar dos originais e o modelo é avaliado novamente.
  • Se ainda houver uma queda na precisão, todos os recursos originais serão incluídos de volta ao experimento.

Referências de pesquisa

Esta lista inclui alguns dos artigos de pesquisa de fundamentais que detalham ainda mais como a AutoAI foi projetado e implementado para promover a confiança e a transparência no processo automatizado de construção de modelos.

Próximas etapas

Imputação de dados em experimentos AutoAI