Partilhar via


Componente: K-Means Clustering

Este artigo descreve como usar o componente K-Means Clustering no designer do Azure Machine Learning para criar um modelo de clustering K-means não treinado.

K-means é um dos algoritmos de aprendizagem não supervisionada mais simples e conhecidos. Você pode usar o algoritmo para uma variedade de tarefas de aprendizado de máquina, como:

  • Deteção de dados anormais.
  • Agrupamento de documentos de texto.
  • Analisar conjuntos de dados antes de usar outros métodos de classificação ou regressão.

Para criar um modelo de clustering, você:

  • Adicione este componente ao seu pipeline.
  • Conecte um conjunto de dados.
  • Defina parâmetros, como o número de clusters esperados, a métrica de distância a ser usada na criação dos clusters e assim por diante.

Depois de configurar os hiperparâmetros do componente, conecte o modelo não treinado ao Modelo de Clustering de Trem. Como o algoritmo K-means é um método de aprendizagem não supervisionado, uma coluna de rótulo é opcional.

  • Se seus dados incluírem um rótulo, você poderá usar os valores do rótulo para orientar a seleção dos clusters e otimizar o modelo.

  • Se os dados não tiverem rótulo, o algoritmo criará clusters que representam categorias possíveis, com base apenas nos dados.

Compreender o agrupamento K-means

Em geral, o agrupamento usa técnicas iterativas para agrupar casos em um conjunto de dados em clusters que possuem características semelhantes. Esses agrupamentos são úteis para explorar dados, identificar anomalias nos dados e, eventualmente, fazer previsões. Os modelos de clustering também podem ajudá-lo a identificar relações em um conjunto de dados que você pode não derivar logicamente por navegação ou simples observação. Por esses motivos, o clustering é frequentemente usado nas fases iniciais das tarefas de aprendizado de máquina, para explorar os dados e descobrir correlações inesperadas.

Ao configurar um modelo de clustering usando o método K-means, você deve especificar um número de destino k que indique o número de centróides desejados no modelo. O centróide é um ponto representativo de cada cluster. O algoritmo K-means atribui cada ponto de dados de entrada a um dos clusters, minimizando a soma de quadrados dentro do cluster.

Quando processa os dados de treinamento, o algoritmo K-means começa com um conjunto inicial de centróides escolhidos aleatoriamente. Os centróides servem como pontos de partida para os clusters, e eles aplicam o algoritmo de Lloyd's para refinar iterativamente suas localizações. O algoritmo K-means para de construir e refinar clusters quando atende a uma ou mais destas condições:

  • Os centróides estabilizam, o que significa que as atribuições de cluster para pontos individuais não mudam mais e o algoritmo convergiu para uma solução.

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

Depois de concluir a fase de treinamento, use o componente Atribuir dados a clusters para atribuir novos casos a um dos clusters encontrados usando o algoritmo K-means. Você executa a atribuição de cluster calculando a distância entre o novo caso e o centróide de cada cluster. Cada novo caso é atribuído ao cluster com o centróide mais próximo.

Configurar o componente K-Means Clustering

  1. Adicione o componente K-Means Clustering ao seu pipeline.

  2. Para especificar como você deseja que o modelo seja treinado, selecione a opção Criar modo de treinador.

    • Parâmetro único: Se você souber os parâmetros exatos que deseja usar no modelo de clustering, poderá fornecer um conjunto específico de valores como argumentos.
  3. Em Número de centróides, digite o número de clusters com o qual você deseja que o algoritmo comece.

    Não é garantido que o modelo produza exatamente esse número de clusters. O algoritmo começa com esse número de pontos de dados e itera para encontrar a configuração ideal. Você pode consultar o código-fonte do sklearn.

  4. As propriedades Initialization são usadas para especificar o algoritmo usado para definir a configuração inicial do cluster.

    • Primeiro N: Alguns pontos de dados são escolhidos a partir do conjunto de dados e utilizados como meio inicial.

      Este método também é chamado de método Forgy.

    • Aleatório: O algoritmo coloca aleatoriamente um ponto de dados em um cluster e, em seguida, calcula a média inicial para ser o centróide dos pontos atribuídos aleatoriamente do cluster.

      Este método também é chamado de método de partição aleatória.

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

      O algoritmo K-means++ foi proposto em 2007 por David Arthur e Sergei Vassilvitskii para evitar um agrupamento pobre pelo algoritmo padrão K-means. K-means++ melhora em relação ao padrão K-means usando um método diferente para escolher os centros de cluster iniciais.

  5. Em Random number seed, opcionalmente, digite um valor a ser usado como semente para a inicialização do cluster. Esse valor pode ter um efeito significativo na seleção de cluster.

  6. Para Metric, escolha a função a ser usada para medir a distância entre vetores de cluster ou entre novos pontos de dados e o centróide escolhido aleatoriamente. O Azure Machine Learning dá suporte às seguintes métricas de distância de cluster:

    • Euclidiano: A distância euclidiana é comumente usada como uma medida de dispersão de aglomerados para agrupamento de K-means. Esta métrica é preferida porque minimiza a distância média entre os pontos e os centróides.
  7. Em Iterações, digite o número de vezes que o algoritmo deve iterar sobre os dados de treinamento antes de finalizar a seleção de centróides.

    Você pode ajustar esse parâmetro para equilibrar a precisão com o tempo de treinamento.

  8. Para Atribuir modo de rótulo, escolha uma opção que especifique como uma coluna de rótulo, se estiver presente no conjunto de dados, deve ser manipulada.

    Como o agrupamento K-means é um método de aprendizado de máquina não supervisionado, os rótulos são opcionais. No entanto, se o conjunto de dados já tiver uma coluna de rótulo, você poderá usar esses valores para orientar a seleção dos clusters ou especificar que os valores sejam ignorados.

    • Ignorar coluna de rótulo: os valores na coluna de rótulo são ignorados e não são usados na criação do modelo.

    • Preencher valores ausentes: os valores da coluna de rótulo são usados como recursos para ajudar a criar os clusters. Se faltar um rótulo em alguma linha, o valor será imputado usando outros recursos.

    • Substituir do mais próximo para o centro: os valores da coluna do rótulo são substituídos pelos valores previstos do rótulo, usando o rótulo do ponto mais próximo do centróide atual.

  9. Selecione a opção Normalizar recursos se quiser normalizar recursos antes do treinamento.

    Se você aplicar a normalização, antes do treinamento, os pontos de dados serão normalizados pelo [0,1] MinMaxNormalizer.

  10. Treine o modelo.

    • Se você definir Criar modo de treinamento como Parâmetro único, adicione um conjunto de dados marcado e treine o modelo usando o componente Train Clustering Model.

Resultados

Depois de concluir a configuração e o treinamento do modelo, você terá um modelo que poderá ser usado para gerar pontuações. No entanto, há várias maneiras de treinar o modelo e várias maneiras de exibir e usar os resultados:

Capturar um instantâneo do modelo em seu espaço de trabalho

Se você usou o componente Train Clustering Model :

  1. Selecione o componente Train Clustering Model e abra o painel direito.

  2. Selecione a guia Saídas . Selecione o ícone Registrar conjunto de dados para salvar uma cópia do modelo treinado.

O modelo salvo representa os dados de treinamento no momento em que você salvou o modelo. Se você atualizar posteriormente os dados de treinamento usados no pipeline, ele não atualizará o modelo salvo.

Consulte o conjunto de dados de resultados do clustering

Se você usou o componente Train Clustering Model :

  1. Clique com o botão direito do mouse no componente Train Clustering Model .

  2. Selecione Visualizar.

Dicas para gerar o melhor modelo de clustering

Sabe-se que o processo de semeadura usado durante o agrupamento pode afetar significativamente o modelo. Semeando significa a colocação inicial de pontos em centróides potenciais.

Por exemplo, se o conjunto de dados contiver muitos outliers e um outlier for escolhido para semear os clusters, nenhum outro ponto de dados se encaixaria bem com esse cluster, e o cluster poderia ser um singleton. Ou seja, pode ter apenas um ponto.

Você pode evitar esse problema de algumas maneiras:

  • Altere o número de centróides e tente vários valores de semente.

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

Em geral, com modelos de clustering, é possível que qualquer configuração resulte em um conjunto de clusters otimizado localmente. Em outras palavras, o conjunto de clusters retornado pelo modelo se adequa apenas aos pontos de dados atuais e não é generalizável para outros dados. Se você usar uma configuração inicial diferente, o método K-means poderá encontrar uma configuração diferente e superior.

Próximos passos

Consulte o conjunto de componentes disponíveis para o Azure Machine Learning.