Componente: Clustering K-Means

Este artigo descreve como utilizar o componente clustering K-Means no estruturador do Azure Machine Learning 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. Pode utilizar o algoritmo para uma variedade de tarefas de machine learning, tais como:

  • Detetar dados anormais.
  • A agrupar documentos de texto.
  • Analisar conjuntos de dados antes de utilizar outros métodos de classificação ou regressão.

Para criar um modelo de clustering, tem de:

  • Adicione este componente ao pipeline.
  • Ligar um conjunto de dados.
  • 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 componente, ligue o modelo não preparado ao Modelo de Clustering de Preparação. 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.

Compreender o clustering K-means

Em geral, o clustering utiliza técnicas iterativas para agrupar casos num conjunto de dados em clusters que possuem 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.

Quando processa os dados de preparação, 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 iterativamente as suas localizações. 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 componente Atribuir Dados a Clusters para atribuir novos casos a um dos clusters que encontrou com o algoritmo K-means. Para efetuar a atribuição de clusters, calcule 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.

Configurar o componente de Clustering K-Means

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

  2. Para especificar como pretende que o modelo seja preparado, selecione 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.
  3. Em Número de centroides, 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 algoritmo começa com este número de pontos de dados e itera para encontrar a configuração ideal. Pode consultar o código fonte de sklearn.

  4. As propriedades Inicialização são utilizadas para especificar o algoritmo 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.

      Este método 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.

      Este método 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 um mau clustering pelo algoritmo K-means padrão. O K-means++ melhora em K-means padrão ao utilizar um método diferente para escolher os centros de cluster iniciais.

  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.

  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 Azure 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.
  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 em relação ao 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. Selecione a opção Normalizar funcionalidades se quiser normalizar as funcionalidades antes da preparação.

    Se aplicar normalização, antes da preparação, os pontos de dados são normalizados [0,1] por MinMaxNormalizer.

  10. 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 componente Preparar Modelo de Clustering .

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

Se utilizou o componente Train Clustering Model (Preparar Modelo de Clustering ):

  1. Selecione o componente Preparar Modelo de Clustering e abra o painel direito.

  2. Selecione o separador Saídas . Selecione o ícone Registar conjunto de dados para guardar uma cópia do modelo preparado.

O modelo guardado representa os dados de preparação no momento em que guardou o modelo. Se atualizar posteriormente os dados de preparação utilizados no pipeline, este não atualiza o modelo guardado.

Veja o conjunto de dados do resultado do clustering

Se utilizou o componente Train Clustering Model (Preparar Modelo de Clustering ):

  1. Clique com o botão direito do rato no componente Preparar Modelo de Clustering .

  2. Selecione Visualizar.

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 potenciais centroides.

Por exemplo, se o conjunto de dados contiver muitos valores atípicos e for escolhido um valor atípico para propagar 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.

Pode evitar este problema de duas formas:

  • Altere o número de centroides e experimente vários valores de seed.

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

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 que é devolvido pelo modelo é adequado apenas aos pontos de dados atuais e não é generalizável para outros dados. Se utilizar uma configuração inicial diferente, o método K-means poderá encontrar uma configuração diferente, superior.

Passos seguintes

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