Algoritmo k-means - Amazon SageMaker

Algoritmo k-means

O k-means é um algoritmo de aprendizagem não supervisionada. Ele tenta encontrar agrupamentos distintos dentro dos dados, em que os membros de um grupo sejam o mais semelhantes possível entre eles e o mais diferentes possível dos membros de outros grupos. Você define os atributos a ser usados para determinar similaridade.

O Amazon SageMaker usa uma versão modificada do algoritmo de clustering k-means na escala da web. Em comparação com a versão original do algoritmo, a versão usada pelo Amazon SageMaker é mais precisa. Como o algoritmo original, ele pode ser dimensionado para grandes conjuntos de dados e fornece melhorias no tempo de treinamento. Para fazer isso, a versão usada pelo Amazon SageMaker faz streaming de minilotes (subconjuntos pequenos e aleatórios) dos dados de treinamento. Para obter mais informações sobre k-means de minilotes, consulte o artigo sobre Agrupamento de k-means na escala da web.

O algoritmo k-means espera dados tabulares, em que as linhas representam as observações a ser agrupadas, e as colunas, os atributos das observações. Os atributos n em cada linha representam um ponto no espaço n-dimensional. A distância euclidiana entre esses pontos representa a similaridade das observações correspondentes. O algoritmo agrupa as observações com valores de atributo semelhantes (em que os pontos correspondentes a essas observações são mais próximos). Para obter mais informações sobre como o k-means funciona no Amazon SageMaker, consulte Como funciona o clustering do k-means.

Interface de entrada/saída para o algoritmo k-means

Para treinamento, o algoritmo k-means espera que os dados sejam fornecidos no canal de treinamento (S3DataDistributionType=ShardedByS3Key recomendado), com um canal de teste opcional (S3DataDistributionType=FullyReplicated recomendado) nos quais pontuar os dados. Ambos os formatos recordIO-wrapped-protobuf e CSV têm suporte para treinamento. É possível usar o modo de Arquivo ou de Pipe para treinar modelos em dados formatados como recordIO-wrapped-protobuf ou CSV.

Para a inferência, text/csv, application/json e application/x-recordio-protobuf são compatíveis. O k-means retorna um rótulo closest_cluster e o distance_to_cluster para cada observação.

Para obter mais informações sobre formatos de arquivo de entrada e saída, consulte Formatos de resposta do k-means para inferência e os Blocos de anotações de amostra do k-means. O algoritmo k-means não oferece suporte ao aprendizado de várias instâncias, em que o conjunto de treinamento consiste em “bolsas” rotuladas, sendo que cada uma delas é uma coleção de instâncias não rotuladas.

Recomendação de instâncias do EC2 para o algoritmo k-means

Recomendamos o treinamento do k-means em instâncias de CPU. Você pode treiná-lo em instâncias de GPU, mas deve limitar o treinamento de GPU às instâncias de GPU única (como ml.g4dn.xlarge), porque apenas uma GPU é usada por instância. O algoritmo k-means oferece suporte às instâncias de P2, P3, G4dn e G5 para treinamento e inferência.

Blocos de anotações de amostra do k-means

Para um bloco de anotações de amostra que usa o algoritmo k-means do SageMaker para segmentar a população dos condados dos Estados Unidos pelos atributos identificados usando análises de componentes de princípios, consulte Analisar dados de censo dos EUA para segmentação de população usando o Amazon SageMaker. Para obter instruções sobre como criar e acessar instâncias do bloco de anotações Jupyter que você pode utilizar para executar o exemplo no SageMaker, consulte instância de caderno do Amazon SageMaker. Depois de criar uma instância de bloco de anotações e abri-la, selecione a guia Exemplos do SageMaker para ver uma lista de todas as amostras do SageMaker. Para abrir um bloco de anotações, clique em sua guia Uso e selecione Criar cópia.