Partilhar via


Clustering K-Means

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Configura e inicializa um modelo de clustering K-means

Categoria: Machine Learning/Inicializar Modelo/Clustering

Nota

Aplica-se apenas a: Machine Learning Studio ( clássico)

Estão disponíveis módulos de arrastar e largar semelhantes no estruturador do Azure Machine Learning.

Descrição geral do módulo

Este artigo descreve como utilizar o módulo clustering K-Means no Machine Learning Studio (clássico) para criar um modelo de clustering K-means não preparado.

O K-means é um dos algoritmos de aprendizagem não supervisionados mais simples e conhecidos e pode ser utilizado para uma variedade de tarefas de machine learning, como detetar dados anormais, clustering de documentos de texto e análise de um conjunto de dados antes de utilizar outros métodos de classificação ou regressão. Para criar um modelo de clustering, adicione este módulo à experimentação, ligue um conjunto de dados e defina parâmetros como o número de clusters esperados, a métrica de distância a utilizar na criação dos clusters, etc.

Depois de configurar os hiperparâmetros do módulo, ligue o modelo não preparado ao Modelo de Clustering de Preparação ou aos módulos Varrer Clustering para preparar o modelo nos dados de entrada fornecidos. Como o algoritmo K-means é um método de aprendizagem não supervisionado, uma coluna de etiqueta é opcional.

  • Se os seus dados incluirem uma etiqueta, pode utilizar os valores de etiqueta para orientar a seleção dos clusters e otimizar o modelo.
  • Se os seus dados não existirem etiquetas, o algoritmo cria clusters que representam categorias possíveis, com base apenas nos dados.

Dica

Se os seus dados de preparação têm etiquetas, considere utilizar um dos métodos de classificação supervisionados fornecidos no Machine Learning. Por exemplo, pode comparar os resultados do clustering com os resultados ao utilizar um dos algoritmos de árvore de decisões de várias classes.

Compreender o clustering k-means

Em geral, o clustering utiliza técnicas iterativas para agrupar casos num conjunto de dados em clusters que contenham características semelhantes. Estes agrupamentos são úteis para explorar dados, identificar anomalias nos dados e, eventualmente, para fazer predições. Os modelos de clustering também podem ajudá-lo a identificar relações num conjunto de dados que pode não derivar logicamente através da navegação ou observação simples. Por estas razões, o clustering é frequentemente utilizado nas fases iniciais das tarefas de machine learning, para explorar os dados e descobrir correlações inesperadas.

Quando configura um modelo de clustering com o método k-means, tem de especificar um número de destino k que indique o número de centroides que pretende no modelo. O centroid é um ponto representativo de cada cluster. O algoritmo K-means atribui cada ponto de dados de entrada a um dos clusters minimizando a soma dentro do cluster de quadrados.

Ao processar os dados de preparação, o algoritmo K-means começa com um conjunto inicial de centroides escolhidos aleatoriamente, que servem como pontos de partida para cada cluster, e aplica o algoritmo de Lloyd para refinar iterativamente as localizações dos centroides. O algoritmo K-means deixa de criar e refinar clusters quando cumpre uma ou mais destas condições:

  • Os centroides estabilizam, o que significa que as atribuições de cluster para pontos individuais já não são alteradas e o algoritmo convergiu numa solução.

  • O algoritmo concluiu a execução do número especificado de iterações.

Depois de concluir a fase de preparação, utilize o módulo Atribuir Dados a Clusters para atribuir novos casos a um dos clusters encontrados pelo algoritmo k-means. A atribuição de clusters é efetuada ao calcular a distância entre o novo caso e o centroide de cada cluster. Cada novo caso é atribuído ao cluster com o centroid mais próximo.

Como configurar o Clustering K-Means

  1. Adicione o módulo clustering K-Means à sua experimentação.

  2. Especifique como pretende que o modelo seja preparado ao definir a opção Criar modo de formador .

    • Parâmetro Único: se souber os parâmetros exatos que pretende utilizar no modelo de clustering, pode fornecer um conjunto específico de valores como argumentos.

    • Intervalo de Parâmetros: se não tiver a certeza dos melhores parâmetros, pode encontrar os parâmetros ideais ao especificar vários valores e ao utilizar o módulo Varrer Clustering para encontrar a configuração ideal.

      O formador itera várias combinações das definições que forneceu e determina a combinação de valores que produz os melhores resultados de clustering.

  3. Em Número de Centroids, escreva o número de clusters com o qual pretende que o algoritmo comece.

    Não é garantido que o modelo produza exatamente este número de clusters. O algorithn começa com este número de pontos de dados e itera para encontrar a configuração ideal, conforme descrito na secção Notas Técnicas .

    Se estiver a efetuar uma varrimento de parâmetros, o nome da propriedade muda para Intervalo para Número de Centroids. Pode utilizar o Construtor de Intervalos para especificar um intervalo ou pode escrever uma série de números que representam diferentes números de clusters a criar ao inicializar cada modelo.

  4. As propriedades Inicialização ou Inicialização para varrer são utilizadas para especificar o algoritmo que é utilizado para definir a configuração inicial do cluster.

    • Primeiro N: alguns pontos de dados iniciais são escolhidos a partir do conjunto de dados e utilizados como meios iniciais.

      Também denominado método Forgy.

    • Aleatório: o algoritmo coloca aleatoriamente um ponto de dados num cluster e, em seguida, calcula a média inicial como sendo o centroide dos pontos atribuídos aleatoriamente do cluster.

      Também denominado método de partição aleatória .

    • K-Means++: Este é o método predefinido para inicializar clusters.

      O algoritmo K-means ++ foi proposto em 2007 por David Arthur e Sergei Vassilvitskii para evitar o mau clustering pelo algoritmo k-means padrão. O K-means ++ melhora em K-means padrão com um método diferente para escolher os centros de cluster iniciais.

    • K-Means++Fast: uma variante do algoritmo K-means ++ que foi otimizada para clustering mais rápido.

    • Uniformemente: os centroides estão localizados equidistantes uns dos outros no espaço ddimensional de n pontos de dados.

    • Utilizar coluna de etiqueta: os valores na coluna de etiqueta são utilizados para orientar a seleção de centroides.

  5. Para Semente de número aleatório, escreva opcionalmente um valor a utilizar como semente para a inicialização do cluster. Este valor pode ter um efeito significativo na seleção do cluster.

    Se utilizar uma varrimento de parâmetros, pode especificar que sejam criadas várias sementes iniciais, para procurar o melhor valor de semente inicial. Para Número de sementes a varrer, escreva o número total de valores de sementes aleatórias a utilizar como pontos de partida.

  6. Em Métrica, escolha a função a utilizar para medir a distância entre vetores de cluster ou entre novos pontos de dados e o centroid escolhido aleatoriamente. O Machine Learning suporta as seguintes métricas de distância do cluster:

    • Euclidean: a distância euclidiana é geralmente utilizada como uma medida de dispersão de clusters para clustering K-means. Esta métrica é preferida porque minimiza a distância média entre os pontos e os centroides.

    • Cosseno: a função cosseno é utilizada para medir a semelhança do cluster. A semelhança cosseno é útil nos casos em que não se preocupa com o comprimento de um vetor, apenas com o respetivo ângulo.

  7. Para Iterações, escreva o número de vezes que o algoritmo deve iterar sobre os dados de preparação antes de finalizar a seleção de centroides.

    Pode ajustar este parâmetro para equilibrar a precisão vs. tempo de preparação.

  8. Para Atribuir modo de etiqueta, escolha uma opção que especifique a forma como uma coluna de etiqueta, se estiver presente no conjunto de dados, deve ser processada.

    Uma vez que o clustering K-means é um método de machine learning não supervisionado, as etiquetas são opcionais. No entanto, se o conjunto de dados já tiver uma coluna de etiqueta, pode utilizar esses valores para orientar a seleção dos clusters ou pode especificar que os valores são ignorados.

    • Ignorar coluna de etiqueta: os valores na coluna de etiqueta são ignorados e não são utilizados na criação do modelo.

    • Preencher valores em falta: os valores das colunas de etiquetas são utilizados como funcionalidades para ajudar a criar os clusters. Se faltar uma etiqueta a alguma linha, o valor é imputado através de outras funcionalidades.

    • Substituir do mais próximo para o centro: os valores da coluna de etiqueta são substituídos por valores de etiqueta previstos, utilizando a etiqueta do ponto mais próximo do centroid atual.

  9. Preparar o modelo.

    • Se definir Criar modo de formador como Parâmetro Único, adicione um conjunto de dados etiquetado e prepare o modelo com o módulo Preparar Modelo de Clustering .

    • Se definir Criar modo de formador como Intervalo de Parâmetros, adicione um conjunto de dados etiquetado e prepare o modelo com o Clustering de Varrer. Pode utilizar o modelo preparado com esses parâmetros ou pode tomar nota das definições de parâmetro a utilizar ao configurar um formando.

Resultados

Depois de concluir a configuração e preparação do modelo, tem um modelo que pode utilizar para gerar pontuações. No entanto, existem várias formas de preparar o modelo e várias formas de ver e utilizar os resultados:

Capturar um instantâneo do modelo na área de trabalho

O modelo guardado representará os dados de preparação no momento em que guardou o modelo. Se atualizar posteriormente os dados de preparação utilizados na experimentação, este não atualizará o modelo guardado.

Ver uma representação visual dos clusters no modelo

  • Se utilizou o módulo Preparar Modelo de Clustering

    1. Clique com o botão direito do rato no módulo e selecione Conjunto de dados de resultados.
    2. Selecione Visualizar.
  • Se utilizou o módulo Varrer Clustering

    1. Adicione uma instância do módulo Atribuir Dados a Clusters e gere pontuações com o modelo Best Trained.

    2. Clique com o botão direito do rato no módulo Atribuir Dados a Clusters , selecione Conjunto de dados de resultados e selecione Visualizar.

O gráfico é gerado através da Análise de Componentes Principais, que é uma técnica na ciência de dados para comprimir o espaço de funcionalidades de um modelo. O gráfico mostra alguns conjuntos de funcionalidades, comprimidos em duas dimensões, que melhor caracterizam a diferença entre os clusters. Ao rever visualmente o tamanho geral do espaço de funcionalidades para cada cluster e quanto os clusters se sobrepõem, pode ter uma ideia do desempenho do modelo.

Por exemplo, os seguintes gráficos PCA representam os resultados de dois modelos preparados com os mesmos dados: o primeiro foi configurado para produzir dois clusters e o segundo foi configurado para produzir três clusters. A partir destes gráficos, pode ver que o aumento do número de clusters não melhorou necessariamente a separação das classes.

Comparação de clusters PCA

Dica

Utilize o módulo Varrer Clustering para escolher o conjunto ideal de hiperparâmetros, incluindo a semente aleatória e o número de centroids iniciais.

Veja a lista de pontos de dados e os clusters aos quais pertencem

Existem duas opções para ver o conjunto de dados com resultados, consoante a forma como preparou o modelo:

  • Se utilizou o módulo Varrer Clustering para preparar o modelo

    1. Utilize a caixa de verificação no módulo Varrer Clustering para especificar se pretende ver os dados de entrada juntamente com os resultados ou ver apenas os resultados.
    2. Quando a preparação estiver concluída, clique com o botão direito do rato no módulo e selecione Conjunto de dados de resultados (número de saída 2)
    3. Clique em Visualizar.
  • Se utilizou o módulo Preparar Modelo de Clustering

    1. Adicione o módulo Atribuir Dados a Clusters e ligue o modelo preparado à entrada esquerda. Ligue um conjunto de dados à entrada da direita.
    2. Adicione o módulo Converter em Conjunto de Dados à sua experimentação e ligue-o à saída de Atribuir Dados a Clusters.
    3. Utilize a caixa de verificação no módulo Atribuir Dados a Clusters para especificar se pretende ver os dados de entrada juntamente com os resultados ou ver apenas os resultados.
    4. Execute a experimentação ou execute apenas o módulo Converter em Conjunto de Dados .
    5. Clique com o botão direito do rato em Converter em Conjunto de Dados, selecione Conjunto de dados de resultados e clique em Visualizar.

O resultado contém primeiro as colunas de dados de entrada, se as incluiu e as seguintes colunas para cada linha de dados de entrada:

  • Atribuição: a atribuição é um valor entre 1 e n, em que n é o número total de clusters no modelo. Cada linha de dados só pode ser atribuída a um cluster.

  • DistancesToClusterCenter no.n: este valor mede a distância entre o ponto de dados atual e o centroid do cluster. Uma coluna separada na saída para cada cluster no modelo preparado.

    Os valores da distância do cluster baseiam-se na métrica de distância que selecionou na opção Métrica para medir o resultado do cluster. Mesmo que efetue uma análise de parâmetros no modelo de clustering, apenas uma métrica pode ser aplicada durante a limpeza. Se alterar a métrica, poderá obter valores de distância diferentes.

Visualizar distâncias intra cluster

No conjunto de dados dos resultados da secção anterior, clique na coluna de distâncias de cada cluster. O Studio (clássico) apresenta um histograma que visualiza a distribuição de distâncias para pontos dentro do cluster.

Por exemplo, os seguintes histogramas mostram a distribuição de distâncias de cluster da mesma experimentação, utilizando quatro métricas diferentes. Todas as outras definições para a limpeza de parâmetros eram as mesmas. A alteração da métrica resultou num número diferente de clusters num modelo.

Histogramas de distâncias de cluster

Em geral, deve escolher uma métrica que maximize a distância entre pontos de dados em diferentes classes e minimize as distâncias dentro de uma classe. Pode utilizar os meios pré-concluídos e outros valores no painel Estatísticas para guiá-lo nesta decisão.

Dica

Pode extrair meios e outros valores utilizados em visualizações com o módulo do PowerShell para Machine Learning.

Em alternativa, utilize o módulo Executar Script R para calcular uma matriz de distância personalizada.

Sugestões para gerar o melhor modelo de clustering

Sabe-se que o processo de propagação utilizado durante o clustering pode afetar significativamente o modelo. Propagação significa a colocação inicial de pontos em centroides potentes.

Por exemplo, se o conjunto de dados contiver muitos valores atípicos e for escolhido um valores atípicos para propagar os clusters, nenhum outro ponto de dados se ajustaria bem a esse cluster e o cluster poderia ser um singleton: ou seja, um cluster com apenas um ponto.

Existem várias formas de evitar este problema:

  • Utilize uma varrimento de parâmetros para alterar o número de centroides e experimentar vários valores de semente.

  • Crie vários modelos, variando a métrica ou iterando mais.

  • Utilize um método como o PCA para encontrar variáveis que tenham um efeito prejudicial no clustering. Veja o exemplo Localizar empresas semelhantes para obter uma demonstração desta técnica.

Em geral, com os modelos de clustering, é possível que uma determinada configuração resulte num conjunto de clusters otimizado localmente. Por outras palavras, o conjunto de clusters devolvidos pelo modelo adequa-se apenas aos pontos de dados atuais e não é generalizável para outros dados. Se utilizou uma configuração inicial diferente, o método K-means poderá encontrar uma configuração diferente, talvez superior.

Importante

Recomendamos que experimente sempre os parâmetros, crie vários modelos e compare os modelos resultantes.

Exemplos

Para obter exemplos de como o clustering K-means é utilizado no Machine Learning, veja estas experimentações na Galeria de IA do Azure:

Notas técnicas

Tendo em conta um número específico de clusters (K) para localizar um conjunto de pontos de dados D dimensional com pontos de dados N , o algoritmo K-means cria os clusters da seguinte forma:

  1. O módulo inicializa uma matriz K-by-D com os centroides finais que definem os clusters K encontrados.

  2. Por predefinição, o módulo atribui os primeiros pontos de dados K para os clusters K .

  3. Começando com um conjunto inicial de centroides K , o método utiliza o algoritmo de Lloyd para refinar iterativamente as localizações dos centroides.

  4. O algoritmo termina quando os centroides estabilizam ou quando um número especificado de iterações é concluído.

  5. Uma métrica de semelhança (por predefinição, distância euclidiana) é utilizada para atribuir cada ponto de dados ao cluster que tem o centroid mais próximo.

Aviso

  • Se transmitir um intervalo de parâmetros para Preparar Modelo de Clustering, este utiliza apenas o primeiro valor na lista de intervalos de parâmetros.
  • Se transmitir um único conjunto de valores de parâmetros para o módulo Varrer Clustering , quando espera um intervalo de definições para cada parâmetro, ignora os valores e utiliza os valores predefinidos para o formando.
  • Se selecionar a opção Intervalo de Parâmetros e introduzir um único valor para qualquer parâmetro, esse valor único que especificou é utilizado ao longo da pesquisa, mesmo que outros parâmetros sejam alterados num intervalo de valores.

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Description
Número de Centroids >=2 Número inteiro 2 Número de Centroids
Metric Lista (subconjunto) Metric Euclidiano Métrica selecionada
Inicialização Lista Método de inicialização do Centroid K-Means++ Algoritmo de inicialização
Iterações >=1 Número inteiro 100 Número de iterações

Saídas

Nome Tipo Description
Modelo não preparado Interface ICluster Modelo de clustering K-Means não preparado

Exceções

Para obter uma lista de todas as exceções, veja Códigos de Erro do Módulo de Machine Learning.

Exceção Description
Erro 0003 A exceção ocorre se uma ou mais entradas forem nulas ou estiverem vazias.

Ver também

Clustering
Assign Data to Clusters (Atribuir Dados a Clusters)
Train Clustering Model (Preparar Modelo de Clustering)
Varrer Clustering