Blog

Postado em em 26 de dezembro de 2022

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!

Importando a base de dados
Importando a base de dados

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

Visualizando a base de dados
Visualizando a base de dados

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.

Importando e utilizando o k-means
Importando e utilizando o k-means

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

Visualizando o agrupamento de dados com k=2
Visualizando o agrupamento de dados com k=2

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).

Utilizando o método do cotovelo
Utilizando o método do cotovelo

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.

Índice Rand
Índice Rand

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.

K-Means para Clusterizar
Utilizando o índice rand ajustado

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.

K-Means para Clusterizar
Comparando o RI com o ARI

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.

K-Means para Clusterizar
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.

K-Means para Clusterizar
Aplicando a métrica para diferentes valores de k

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!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Power BI e virar uma referência na sua empresa? Inscreva-se agora mesmo no Power BI Impressionador