Componente: Clustering K-means

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

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

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

Para criar um modelo de clustering, você:

  • Adicione esse componente ao pipeline.
  • Conecta-se a um conjunto de dados.
  • Define parâmetros, como o número de clusters que você espera, a métrica de distância a ser usada na criação de clusters e assim por diante.

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

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

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

Compreendendo o cluster K-Means

Em geral, clustering usa técnicas iterativas para agrupar casos de um conjunto de dados em clusters que contenham características semelhantes. Esses agrupamentos são úteis para explorar dados, identificando anomalias nos dados e criar previsões. Modelos de clustering também podem ajudar a identificar relações em um conjunto de dados que você pode não derivar logicamente por meio de navegação ou simples observação. Por esses motivos, clustering é frequentemente usado nas fases iniciais da tarefa 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 indica o número de centroides que você deseja no modelo. O centroide é 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 ele processa os dados de treinamento, o algoritmo K-means começa com um conjunto inicial de centroides escolhidos aleatoriamente. Os centroides servem como pontos de partida para os clusters e aplicam o algoritmo de Lloyd para refinar seus locais iterativamente. O algoritmo K-means para de criar e refinar os clusters quando ele atende a uma ou mais das seguintes condições:

  • Os centroides estabilizam, significando que as atribuições de cluster para pontos individuais não tem mais alteração e, portanto, o algoritmo convergiu em uma solução.

  • O algoritmo é concluído executando o número especificado de iterações.

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

Configurar o componente Clustering K-means

  1. Adicione o componente de Clustering K-means ao seu pipeline.

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

    • 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. Para Número de centroides, digite o número de clusters para o qual você deseja que o algoritmo comece.

    Não há garantia de 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 localizar a configuração ideal. Você pode consultar o código-fonte de sklearn.

  4. A inicialização de propriedades é usada para especificar o algoritmo que é usado para definir a configuração de cluster inicial.

    • Primeiro N: Um número inicial de pontos de dados é escolhido no conjunto de dados e usado como o meio inicial.

      Esse método também é chamado de Método de 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 centroide dos pontos atribuídos aleatoriamente do cluster.

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

    • K-means++ : Esse é o método padrão para inicializar clusters.

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

  5. Para Semente de número aleatório, 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 Métrica, escolha a função a ser usada para medir a distância entre os vetores de cluster ou entre os novos pontos de dados e os centroides escolhidos aleatoriamente. O Azure Machine Learning dá suporte às seguintes métricas de distância do cluster:

    • Euclidiana: A distância Euclidiana normalmente é usada como uma medida de dispersão de cluster para clusters K-means. Essa métrica é preferencial porque minimiza a distância média entre pontos e os centroides.
  7. Para 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 centroides.

    Você pode ajustar esse parâmetro para equilibrar a precisão em relação ao tempo de treinamento.

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

    Como o clustering 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 de coluna de rótulo são usados como recursos para ajudar a criar os clusters. Se alguma linha estiver sem um rótulo, o valor será atribuído usando outros recursos.

    • Substituir do mais próximo ao centro: Os valores de coluna de rótulo são substituídos por valores de rótulo previstos, usando o rótulo do ponto mais próximo do centroide atual.

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

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

  10. Treinar o modelo.

    • Se você definir Criar modo treinador como Parâmetro Único, adicione um conjunto de dados marcado e treine o modelo usando o componente Treinar Modelo de Clustering.

Resultados

Depois de concluir a configuração e o treinamento do modelo, você tem um modelo que pode 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 Treinar Modelo de Clustering:

  1. Selecione o componente Treinar Modelo de Clustering 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, o modelo salvo não será atualizado.

Consultar o conjunto de dados de resultados de clustering

Se você usou o componente Treinar Modelo de Clustering:

  1. Clique com o botão direito no componente Treinar Modelo de Clustering.

  2. Selecione Visualizar.

Dicas para gerar o melhor modelo de clustering

Sabe-se que o processo de propagação usado durante o clustering pode afetar significativamente o modelo. A propagação significa o posicionamento inicial de pontos em possíveis centroides.

Por exemplo, se o conjunto de dados contiver muitas exceções e uma exceção for escolhida para propagar os clusters, nenhum outro ponto de dados se ajustará bem com esse cluster, e o cluster poderá ser um singleton. Ou seja, ele pode ter apenas um ponto.

Esse problema pode ser evitado de duas maneiras:

  • Altere o número de centroides e teste 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 específica resulte em um conjunto de clusters otimizado localmente. Em outras palavras, o conjunto de clusters retornado pelo modelo atende apenas aos pontos de dados atuais e não é generalizado para outros dados. Se você usou uma configuração inicial diferente, o método K-means pode encontrar uma configuração diferente, talvez superior.

Próximas etapas

Confira o conjunto de componentes disponíveis no Azure Machine Learning.