K-means como algoritmo de agrupamento e identificação de padrão em grupos.

Marcus Vinícius
4 min readJul 27, 2021

--

Introdução

Podemos dividir o aprendizado de máquina em supervisionado e não-supervisionado. No primeiro caso, buscamos responder perguntas com base em um target/label, há conhecimento prévio sobre a variável resposta. Já no segundo caso, procuramos identificar grupos/padrões com base nos dados, sem uma variável resposta específica previamente estabelecida.

Dados

Conjunto de dados inicial

O conjunto de dados pode ser obtido no link. É composto por oito variáveis e duas mil observações. A variável ID foi excluída por não agregar informação. As variáveis categóricas com mais de dois níveis (Education, Occupation e Settlement size) foram transformadas em variáveis dummy. As variáveis nominais (Age e Income) foram padronizadas com a função MinMaxScaler(), transformando os valores entre 0 e 1, visto que anteriormente estavam e unidades e intervalos muito distintos.

Legenda das variáveis do conjunto de dados

K-means

Existem alguns algoritmos para aprendizado não-supervisionado, e provavelmente o k-means é um dos mais populares e simples. Basicamente, o algoritmo seleciona pontos (centroides) e a partir deles calcula a distância euclidiana aos demais pontos, e os que forem mais próximos de cada centroide são alocados formando um agrupamento. Após isso é calculada a média dos pontos de cada agrupamento e o processo de repete iterativamente.

A única informação que obrigatoriamente deve ser informada ao algoritmo é o valor de k, ou seja, o número de agrupamentos que devem ser formados. Mas como saber qual o valor de k a ser utilizado?

Regra do cotovelo

Uma das formas mais difundidas para encontrar um valor plausível para k é a regra do cotovelo. O método possui esse nome pois o ponto na curva a ser escolhido se assemelha a dobra do cotovelo de um braço.
Existem algumas funções que obtém essa visualização. A utilizada nesse exercício foi a KElbowVisualizer(), que utiliza por padrão a métrica de distorção. A distorção nada mais é que a soma do quadrado das distâncias de cada ponto com relação ao seu determinado centroide.

Linha pontilhada mostrando o cotovelo

Como visto no gráfico acima, o valor de k selecionado é 4.

Resultados

Após o agrupamento feito pelo algoritmo, a variável cluster foi criada para designar a qual grupo cada observação pertence.

Conjunto de dados final com as transformações feitas

Uma maneira de comparar os grupos e encontrar características sobre cada um é utilizando um gráfico polar. Resumindo e agrupando as variáveis por cluster, podemos identificar padrões.

Gráfico polar
  • Analisando o gráfico, podemos ver que o cluster 0 representa consumidores que possuem maior Income médio, são maioria para Education_2 (nível de educação ensino superior ou maior), possuem também o maior Age (idade média).
  • Já o cluster 1 mostra um perfil de consumidores que possuem o menor Income médio, maioria de Occupation_0 (desempregados) e Settlement size_0 (moram em cidades pequenas).
  • O cluster 2 representa um perfil de pessoas que possuem maior nível de Education_1 (ensino médio), Occupation_1 (moram em cidades de tamanho médio), Sex (1, maior proporção de mulheres) e Marital status (são casado(as), divorciado(as), separado(as) ou viúvo(as))
  • Por fim, o cluster 3, possuem o segundo maior Income médio, maioria em Settlement size_2 (moram em cidades grandes) e maioria do Sex (0, maior proporção de homens).

Considerações finais

O algoritmo k-means é simples mas muito útil na tarefa de clusterização, podendo prover bons insights sobre os mais variados assuntos. Uma explicação mais detalhada sobre pode ser encontrada aqui.

O notebook pode ser encontrado aqui.

Quaisquer dúvidas, sugestões ou correções são bem vindas!

--

--

Marcus Vinícius
Marcus Vinícius

Written by Marcus Vinícius

Estatístico, entusiasta na área de ciência de dados e amante de tecnologia.