Todos os produtos
Search
Central de documentação

PolarDB:Algoritmo de clustering K-means (K-Means)

Última atualização: Jun 28, 2026

O K-means é um algoritmo de clustering iterativo integrado ao PolarDB for MySQL. Use-o para agrupar linhas de uma tabela em K clusters distintos com base em colunas de recursos numéricos, diretamente no banco de dados, sem exportar dados para uma plataforma externa de ML.

Funcionamento

O K-means particiona os dados nas seguintes etapas:

  1. Divida o conjunto de dados em K grupos e selecione aleatoriamente K linhas como centroides iniciais.

  2. Calcule a distância de cada linha até todos os centroides.

  3. Atribua cada linha ao centroide mais próximo.

  4. Recalcule cada centroide como a média de todas as linhas atribuídas a ele.

  5. Repita as etapas 2 a 4 até que os centroides se estabilizem (as atribuições não mudem mais) ou o algoritmo atinja o limite de iterações.

O algoritmo usa as colunas especificadas em x_cols como recursos e gera um rótulo de cluster para cada linha.

Casos de uso

O K-means é eficaz para descobrir agrupamentos naturais em dados numéricos. As aplicações comuns incluem:

  • Classificação de documentos: Represente documentos como vetores usando frequência de termos e agrupe-os para identificar conjuntos semelhantes por tópico ou conteúdo.

  • Segmentação de clientes: Agrupe clientes por histórico de compras, interesses ou dados de atividade para definir segmentos de campanhas direcionadas. Por exemplo, segmente assinantes de telecomunicações pelo comportamento de pagamento: recargas, envio de mensagens de teste e navegação no site.

  • Detecção de fraudes: Aplique clustering em registros históricos de transações para identificar padrões associados a reivindicações fraudulentas. Use o modelo para sinalizar novos registros correspondentes a clusters de fraude conhecidos. Essa abordagem é comum na detecção de fraudes automotivas, médicas e de seguros.

  • Clustering de alertas de TI: Agrupe alertas da infraestrutura de rede, armazenamento ou banco de dados para categorizá-los, calcular o tempo médio de reparo e prever falhas em cascata.

  • Análise de registros de chamadas: Combine registros detalhados de chamadas (CDRs) com perfis de clientes para agrupar assinantes por comportamento de uso, ajudando a prever necessidades de serviço e reduzir o churn.

  • Análise de padrões criminais: Agrupe eventos criminais por tipo e localização para identificar pontos críticos e priorizar investigações.

Parâmetros

Defina o seguinte parâmetro na opção model_parameter da instrução CREATE MODEL.

Parâmetro

Descrição

Padrão

n_clusters

Número de clusters (K).

4

Exemplos

Os exemplos abaixo usam a tabela db4ai.testdata1, que contém as colunas numéricas dx1 e dx2.

Crie um modelo K-means

/*polar4ai*/CREATE MODEL test_kmeans WITH
(model_class = 'kmeans', x_cols = 'dx1,dx2',
 y_cols='', model_parameter=(n_clusters=2))
 AS (SELECT * FROM db4ai.testdata1);

Esta instrução treina um modelo K-means chamado test_kmeans que agrupa as linhas em 2 clusters com base nas colunas dx1 e dx2.

Execute previsões

Após treinar o modelo, use PREDICT para obter a atribuição de cluster de cada linha:

/*polar4ai*/SELECT dx1, dx2 FROM
PREDICT(MODEL test_kmeans,
SELECT * FROM db4ai.testdata1 LIMIT 10)
WITH (x_cols = 'dx1,dx2',
      y_cols='');

Cada linha no resultado inclui seus valores originais de recursos (dx1, dx2) e um rótulo de cluster indicando o grupo atribuído.

Observações de uso

  • As colunas em x_cols devem conter dados do tipo ponto flutuante ou inteiro.