Todos os produtos
Search
Central de documentação

:Modelos e algoritmos

Última atualização: Jun 26, 2026

A biblioteca de modelos do RDS SQLFlow oferece diversos modelos adequados para diferentes cenários. Selecione o modelo apropriado com base no tipo de problema a ser resolvido. Este tópico descreve os diferentes modelos e seus algoritmos.

Visão geral dos modelos

Modelos de classificação

Os modelos de classificação resolvem situações em que um conjunto de dados contém múltiplas categorias e é necessário determinar a qual categoria novos dados pertencem. Esses modelos ajudam a responder perguntas binárias (sim ou não) e de classificação multiclasse (A, B ou C). Para mais informações, consulte Modelos de classificação.

Cenários

  • Classificação de imagens: tarefas como reconhecimento de dígitos manuscritos e de objetos.

  • Classificação de texto: tarefas como análise de sentimentos e identificação de spam.

  • Sistemas de recomendação: previsão da intenção de compra de usuários no comércio eletrônico.

  • Diagnóstico médico: análise de informações de pacientes para prever riscos de doenças.

Modelos de regressão

Modelos de regressão são adequados para dados com relações quantificáveis. Eles estimam a relação entre os dados e fazem previsões para novos conjuntos com base nessa estimativa. Para mais informações, consulte Modelos de regressão. Um modelo de regressão é construído com base na relação entre variáveis de entrada (recursos) e variáveis de saída (resultados) para atender aos requisitos nos cenários a seguir.

Cenários

  • Economia: previsão de indicadores econômicos, como preços de imóveis e ações. Nesse cenário, a regressão linear ajuda a compreender eficientemente as relações entre diferentes variáveis.

  • Medicina: previsão de resultados de saúde, como níveis de glicose no sangue, com base em recursos como estilo de vida e informações genéticas.

  • Marketing: análise da relação entre gastos com publicidade e receita de vendas para otimizar estratégias de marketing.

  • Engenharia: previsão do desempenho de produtos, cujos resultados servem para construir modelos baseados em vários parâmetros.

  • Ciências sociais: análise de fenômenos sociais, como o impacto do nível de escolaridade na renda.

Modelos de clustering

Modelos de clustering classificam dados em um conjunto com base em similaridades específicas e geram novos modelos de instância aplicáveis aos cenários abaixo. Para mais informações, consulte Modelos de clustering. Esses modelos fornecem um método de aprendizado não supervisionado para machine learning (ML), classificando amostras distintas conforme a similaridade de recursos. Nos resultados, as amostras do mesmo grupo são semelhantes entre si, enquanto as de grupos diferentes apresentam diferenças significativas. Devido à capacidade de identificar padrões potenciais em dados não rotulados, os modelos de clustering são amplamente utilizados em análise de dados e reconhecimento de padrões.

Cenários

  • Classificação de clientes: fornecedores utilizam análise de clustering para pesquisar profundamente os padrões de comportamento e preferências dos usuários, implementando estratégias de marketing de precisão.

  • Processamento de imagens: durante a classificação de imagens e o reconhecimento de objetos, pixels com recursos semelhantes precisam ser agrupados na mesma categoria por meio de clustering.

  • Detecção de anomalias: amostras que não pertencem a nenhum cluster devem ser identificadas para detectar possíveis outliers, como ataques no campo da segurança cibernética.

  • Clustering de documentos: muitos documentos precisam ser classificados por tópico ou conteúdo para facilitar a recuperação de informações e a compilação de dados.

  • Bioinformática: na análise de dados de expressão gênica, pesquisadores usam análise de clusters para identificar grupos de genes semelhantes.

Modelos de classificação

DNNClassifier

Introdução

O Deep Neural Network Classifier (DNNClassifier) é uma API avançada fornecida pelo TensorFlow para construir modelos de rede neural profunda (DNN) destinados a previsões binárias ou multiclasse. A API utiliza uma rede multicamadas totalmente conectada para capturar relações não lineares nos dados, treinando e otimizando pesos e vieses para minimizar a perda entre a saída do modelo e a categoria real.

O DNNClassifier oferece os seguintes benefícios:

  • Facilidade de uso: atua como uma API avançada que simplifica a construção de modelos de deep learning.

  • Modularidade: permite configurar flexivelmente a estrutura da rede, como o número e o tamanho das camadas ocultas.

  • Treinamento paralelo: possibilita o uso de CPUs multicore ou GPUs para acelerar o treinamento.

  • Múltiplos recursos de entrada: suporta a combinação de recursos numéricos e categóricos.

Parâmetros

Parâmetro

Descrição

model.hidden_units

Número de neurônios na camada oculta de um modelo DNN. Por exemplo, se o valor estiver no intervalo [128, 32], o modelo conterá duas camadas ocultas, com 128 e 32 neurônios, respectivamente.

model.n_classes

Número total de categorias que o modelo pode classificar (aplicável a modelos classificadores). Por exemplo, :2 indica que o modelo divide os dados em duas categorias.

model.optimizer

Otimizador utilizado para o treinamento do modelo.

model.batch_norm

Define se deve usar batch_norm após cada camada oculta. Valores válidos:

  • True: Ativado.

  • False (padrão)

model.dropout

Probabilidade de dropout. Valor de exemplo: 0,5. Valor padrão: None.

Exemplo

### Training
SELECT * FROM iris.train TO TRAIN DNNClassifier WITH
  model.n_classes = 3,
  train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

## Prediction
SELECT * FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;

XGBoost gbtree

Introdução

O Extreme Gradient Boosting (XGBoost) é um algoritmo eficiente de árvore de gradient boosting, amplamente utilizado para classificação e regressão. O modelo XGBoost gbtree usa árvores de decisão como aprendizes base.

O algoritmo apresenta as seguintes características:

  • Alto desempenho: em várias tarefas de classificação, o BoostedTreesClassifier do XGBoost atinge maior precisão do que métodos tradicionais.

  • Adaptabilidade: avalia automaticamente a importância dos recursos e se adapta a diferentes distribuições de dados.

  • Interpretabilidade: analisa a importância dos recursos, permitindo entender como o modelo toma decisões.

  • Prevenção de overfitting: as Boosted Trees podem usar técnicas de regularização para evitar eficazmente o overfitting ao percorrer árvores profundas.

  • Capacidade de lidar com valores ausentes: trata adequadamente valores ausentes em uma amostra, evitando problemas de pré-processamento.

  • Treinamento paralelo e distribuído: permite treinar modelos eficientemente em grandes conjuntos de dados.

Exemplo

## Used for binary classification
SELECT * FROM train_table
TO TRAIN xgboost.gbtree
WITH objective="binary:logistic", validation.select="SELECT * FROM val_table"
LABEL class
INTO my_xgb_classification_model;

## Used for multi-class classification
SELECT * FROM train_table	
TO TRAIN xgboost.gbtree
WITH objective="multi:softmax", num_class=3, validation.select="SELECT * FROM val_table"
LABEL class
INTO my_xgb_classification_model;

## Used for regression tasks
SELECT * FROM train_table
TO TRAIN xgboost.gbtree
WITH objective="reg:squarederror", validation.select="SELECT * FROM val_table"
LABEL target
INTO my_xgb_regression_model;

GCN

Introdução

Uma Graph Convolutional Network (GCN) é um modelo de deep learning projetado especificamente para processar dados estruturados em grafos, aplicando convoluções sobre o grafo. As GCNs capturam eficazmente relações complexas entre nós e os recursos estruturais profundos dos grafos. Essa capacidade permite analisar dados com estruturas e relacionamentos complexos, como os envolvidos em redes sociais, sistemas de recomendação e redes biológicas. Uma GCN recebe um grafo como entrada, composto por nós e arestas. Em muitos cenários de negócios, os dados podem ser naturalmente representados em uma estrutura de grafo, como redes sociais e grafos de conhecimento. As GCNs utilizam convoluções de grafos em redes neurais convolucionais (CNNs) e atualizam a representação de cada nó agregando informações de recursos de nós vizinhos. Dessa forma, a representação de um nó inclui os recursos de seus vizinhos.

Cenários

  • Análise de redes sociais: execução de tarefas como recomendação de usuários, previsão de relacionamentos e detecção de comunidades.

  • Classificação de nós: classificação de nós ou entidades em um grafo de conhecimento ou estrutura similar, prevendo a categoria de um nó específico. Pode ser usado para classificar marcas ou produtos.

  • Segmentação de imagens: aplicação em imagens compostas por pixels para melhorar o desempenho da segmentação de imagens e do reconhecimento de objetos.

Modelos de regressão

DNNRegressor

Introdução

O DNNRegressor é uma API avançada fornecida pelo TensorFlow para deep learning em tarefas de regressão. Pertencente ao módulo TensorFlow Estimator, ele processa dados estruturados, como dados em tabelas ou no formato CSV. O DNNRegressor também aprende relações de dados não lineares complexas para prever saídas de valores contínuos, como preços ou probabilidades.

Parâmetros

Parâmetro

Descrição

n_classes

Número total de categorias que o modelo pode classificar (aplicável a modelos classificadores). Por exemplo, :2 indica que o modelo divide os dados em duas categorias.

optimizer

Otimizador utilizado para o treinamento do modelo.

sparse_combiner

Especifica o método de processamento quando a entrada da coluna categórica contém múltiplos valores idênticos, por exemplo: mean, sqrtn ou sum.

Exemplo

## Training
SELECT f9, target FROM housing.train
TO TRAIN DNNRegressor WITH model.hidden_units = [10, 20]
COLUMN EMBEDDING(CATEGORY_ID(f9, 1000), 2, "sum")
LABEL target
INTO housing.dnn_model;

## Prediction
SELECT f9, target FROM housing.test
TO PREDICT housing.predict.class USING housing.dnn_model;

RNNBasedTimeSeriesModel

Introdução

O RNNBasedTimeSeriesModel, uma Recurrent Neural Network (RNN), é um modelo de previsão baseado em séries temporais de Long Short-Term Memory (LSTM). Ele prevê valores futuros usando valores passados como recursos. Uma RNN é uma rede neural capaz de processar dados sequenciais. Em cada passo de tempo, as RNNs recebem não apenas os dados do ponto atual, mas também consideram os dados de estado do ponto anterior. São adequadas para processar dados de séries temporais, como preços de ações, leituras de temperatura e linguagem natural.

As RNNs oferecem os seguintes benefícios:

  • Capacidade de memória: armazenam informações de entradas anteriores, permitindo capturar dependências de longo prazo em séries temporais.

  • Comprimento de entrada dinâmico: lidam com sequências de entrada de qualquer comprimento, o que é especialmente importante para dados de séries temporais.

  • Mapeamento não linear: estabelecem relações não lineares entre dados de entrada e saída, possibilitando tarefas complexas de previsão em séries temporais.

  • Geração de sequências: além de tarefas de previsão, geram dados de séries temporais, como música e informações textuais.

Parâmetros

Parâmetro

Descrição

model.stack_units

Número de camadas LSTM e o tamanho de cada camada. Valor padrão: [500, 500].

model.n_in

Número de pontos de tempo de entrada.

model.n_out

Número de pontos de tempo de saída.

Exemplo

## Training
SELECT sepal_length, sepal_width, petal_length, concat(petal_width,',',class) as class 
FROM iris.train 
TO TRAIN sqlflow_models.RNNBasedTimeSeriesModel WITH
    model.n_in=3,
    model.stack_units = [10, 10],
    model.n_out=2,
    model.model_type="lstm",
    validation.metrics= "MeanAbsoluteError,MeanSquaredError"
LABEL class
INTO sqlflow_models.my_dnn_regts_model_2;

## Prediction
SELECT sepal_length, sepal_width, petal_length, concat(petal_width,',',class) as class 
FROM iris.test 
TO PREDICT iris.predict_ts_2.class 
USING sqlflow_models.my_dnn_regts_model_2;

Modelos de clustering

DeepEmbeddingClusterModel

Introdução

O DeepEmbeddingClusterModel combina métodos de deep learning e clustering. É usado principalmente para aprender automaticamente representações de embedding de baixa dimensão dos dados e realizar clustering no espaço de embedding.

O DeepEmbeddingClusterModel oferece os seguintes benefícios:

  • Deep learning: utiliza redes neurais profundas para extração de recursos, aprendendo automaticamente representações úteis dos dados e capturando relações não lineares complexas.

  • Representação incorporada: projeta dados de alta dimensão em um espaço de embedding de menor dimensão, simplificando o clustering e melhorando seu desempenho.

  • Capacidades de clustering: realiza clustering diretamente no espaço de embedding para reduzir a distância entre pontos de dados do mesmo tipo, aumentando a precisão e a interpretabilidade do clustering.

  • Capacidades de generalização: na maioria dos casos, processa dados ruidosos e complexos graças às vantagens do deep learning.

  • Escalabilidade: processa conjuntos de dados volumosos e itera e atualize dados eficazmente com base em deep learning.

Parâmetros

Parâmetro

Descrição

model.n_clusters

Número de categorias de clustering. Valor padrão: 10.

model.kmeans_init

Número de vezes que o algoritmo K-means é executado para obter o melhor ponto central. Valor padrão: 20.

model.run_pretrain

Define se deve realizar pré-treinamento. Valor padrão: True.

model.pretrain_dims

Dimensão de cada camada oculta quando o autoencoder é pré-treinado. Valor padrão: [500, 500, 2.000, 10].

model.pretrain_activation_func

Função de ativação para a parte do autoencoder, valor padrão: 'relu'.

model.pretrain_batch_size

Tamanho do lote para treinamento do autoencoder. Valor padrão: 256.

model.train_batch_size

Tamanho do lote para treinamento. Valor padrão: 256.

model.pretrain_epochs

Número de épocas de pré-treinamento. Valor padrão: 10.

model.pretrain_initializer

Método de inicialização para parâmetros do autoencoder, valor padrão: 'glorot_uniform'.

model.pretrain_lr

Taxa de aprendizado do pré-treinamento. Valor padrão: 1.

model.train_lr

Taxa de aprendizado do treinamento. Valor padrão: 0,1.

model.train_max_iters

Número máximo de passos de iteração de treinamento. Valor padrão: 8.000.

model.update_interval

Número de passos nos quais a distribuição necessária é atualizada. Valor padrão: 100.

model.tol

Tolerância. Valor padrão: 0,001.

Exemplo

## Training
SELECT (sepal_length - 4.4) / 3.5 as sepal_length, (sepal_width - 2.0) / 2.2 as sepal_width, (petal_length - 1) / 5.9 as petal_length, (petal_width - 0.1) / 2.4 as petal_width
FROM iris.train
TO TRAIN sqlflow_models.DeepEmbeddingClusterModel
WITH
  model.pretrain_dims = [10,10,3],
  model.n_clusters = 3,
  model.pretrain_epochs=5,
  train.batch_size=10,
  train.verbose=1
INTO sqlflow_models.my_clustering_model;

## Prediction
SELECT (sepal_length - 4.4) / 3.5 as sepal_length, (sepal_width - 2.0) / 2.2 as sepal_width, (petal_length - 1) / 5.9 as petal_length, (petal_width - 0.1) / 2.4 as petal_width
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_clustering_model;

Referências

Introdução ao RDS Custom