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:
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!
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!
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!
Para acessar outras publicações de Ciência de Dados, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.