K-Means para Clusterizar – Como Agrupar Dados com o K-Means?
Quer aprender como usar o k-means para clusterizar, ou seja, para agrupar dados e verificar qual o melhor agrupamento?
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Como Usar o K-Means para Clusterizar?
Aqui no blog nós já mostramos a base teórica do K-Means, mas hoje a ideia é te mostrar como usar o k-means para agrupar dados.
Isso mesmo, vamos entender como funciona o processo de agrupamento de dados utilizando esse algoritmo!
Agrupar Dados com o K-Means
Nessa aula assim como em algumas outras, nós vamos utilizar o Dataset Iris para fazer algumas análises e entender como funciona o agrupamento de dados com o k-means.
https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html
Caso ainda não tenha esse dataset basta utilizar o link acima para obter e acompanhar a aula!
A nossa ideia é criar os clutesters (agrupamentos) baseado nesses dados. Vamos iniciar com a importação do dataset íris para que possamos fazer nossas análises!

Agora podemos visualizar graficamente esses pontos para facilitar o entendimento de como funcionam os agrupamentos.

OBS: Vale lembrar que aqui estamos utilizando o matplotlib para criar esse gráfico e já temos aula no blog sobre o assunto!
Agora nós vamos usar o K-means para poder verificar como ele faz o agrupamento dos dados, levando em conta que vamos utilizar inicialmente n_clusters igual a 2, ou seja, vamos ter 2 agrupamentos.
Caso ainda não saiba como utilizar o k-means ou precisa de alguma informação você pode clicar aqui e acessar a documentação desse algoritmo.
Então vamos importar o kmeans, utilizar o algoritmo e verificar quais os labels que foram aplicados.
IMPORTANTE: Aqui vale lembrar que esses labels não são os labels da classificação das pétalas, essas informações são totalmente diferentes, então não confunda essa clusterização com a classificação dos nossos dados.

Feito isso podemos utilizar um gráfico para ver melhor como foi feito o agrupamento dos dados.

Agora que você já viu como isso é feito, você pode alterar o n_clusters para 3, 4, 5… Para verificar como ficam os agrupamentos.
Só que aí surge uma questão importante. Qual o melhor valor de k? Como podemos saber se 2 é melhor, ou 3, ou 4…
Para isso nós vamos utilizar o Método do Cotovelo (Elbow Method).

Para poder criar esse gráfico nós vamos utilizar a inertia, que nada mais é do que a soma dos quadrados das distâncias das amostras para o centro do cluster.
Então é uma forma de verificar a se esse K é bom ou não. Sabendo disso podemos usar a estrutura de repetição for e calcular com alguns valores diferentes de k para encontrar qual seria o melhor.
No gráfico você deve ter notado que temos algumas diferenças mais bruscas, que são os nossos cotovelos, então isso quer dizer que k igual a 2 e k igual a 3 são boas opções para utilizar para iniciar o estudo de clusterização.
Vamos agora visualizar 2 métricas para que você saiba o que é de fato um bom modelo.
Primeiro vamos começar com o Índice Rand que é quando nós temos os rótulos/labels, ou seja, já temos a classificação dos nossos itens.

Aqui temos uma breve explicação de como esse índice funciona, mas você pode clicar aqui e acessar a documentação para que fique ainda mais claro e para que você possa observar outras informações úteis na hora de fazer o seu projeto.
Sabendo disso vamos verificar o índice rand ajustado para k=2, k=3 e k=4.

Para não ter que ficar calculando manualmente cada um deles podemos repetir o que fizemos anteriormente, podemos utilizar a estrutura de repetição para pegar do k=1 até k=15.
Dessa forma vamos ter uma visualização melhor de como o índice rand e o índice rand ajustado se comportam em cada um dos casos.

Você deve ter notado que o RI (índice rand) tem alguns problemas como listamos na outra imagem. Ele acaba tendo alguns problemas como ter valores altos mesmo para dados aleatórios.
Por isso é que utilizamos o ARI (índice rand ajustado) para corrigir esse problema!
Lembrando que o índice rand nós vamos utilizar quando soubermos a classificação dos nossos itens.
Agora quando não tivermos essa classificação podemos utilizar o Coeficiente Silhueta.

Aqui nós podemos fazer o mesmo procedimento que fizemos anteriormente, verificar esse coeficiente para diferentes valores de k.
Só que nesse caso precisamos começar com k=2, pois utilizando k=1 teremos um erro no código.

Nesse caso o nosso melhor resultado foi obtido fazendo k=2, então quer dizer que esse é o melhor valor de k?
E a resposta é NÃO, pois isso é apenas um direcionamento por onde você vai começar. Vale ressaltar que é muito importante que você conheça o negócio e trazer esse conhecimento para o algoritmo que está sendo criado.
Dessa forma fica mais fácil entender como utilizar essas métricas. E vale lembrar que se já temos os rótulos, na maioria das vezes vamos utilizar a classificação e não a clusterização!
Conclusão – K-Means para Clusterizar
Nessa aula eu te mostrei como usar o k-means para clusterizar, ou seja, para agrupar dados.
Temos algumas formas de verificar se esse agrupamento é bom ou não e mostrei 2 métricas que vão te ajudar nesse processo.
Uma delas é o método do cotovelo e a outra é o coeficiente silhueta! Agora você já sabe como utilizar o k-means para agrupar seus dados e como verificar se o agrupamento é bom!
Hashtag Treinamentos
Para acessar outras publicações de Ciência de Dados, clique aqui!


