1
resposta

[Projeto] Faça como eu fiz: otimizando o resultado dos agrupamentos

Olá, pessoal!

Nesta etapa, dei continuidade ao fluxo de clusterização buscando otimizar o resultado dos agrupamentos gerados pelo modelo KMeans. Depois de preparar os dados e aplicar a codificação One-Hot Encoding na coluna categórica sexo, utilizei o método describe() para observar as estatísticas resumidas da base e entender melhor a distribuição dos valores.

Em seguida, apliquei o MinMaxScaler para escalar os dados em um intervalo entre 0 e 1. Essa etapa é importante porque o KMeans é um algoritmo baseado em distância, então colunas com valores em escalas maiores podem acabar influenciando mais o agrupamento do que deveriam. Ao escalar os dados, todas as variáveis passam a contribuir de maneira mais equilibrada para o cálculo das distâncias.

Após o escalonamento, converti os dados novamente para um DataFrame pandas, preservando os nomes das colunas originais para facilitar a análise. Também salvei o scaler treinado com joblib, permitindo que a mesma transformação seja reutilizada futuramente em novos dados.

Com os dados escalados, executei novamente a função de avaliação para calcular a inércia e o Silhouette Score em diferentes quantidades de clusters, variando de 2 até 20. A partir dessa análise, utilizei o gráfico de silhueta e o método do cotovelo para apoiar a escolha da quantidade mais adequada de grupos.

Com base nos resultados observados, escolhi k = 3 como melhor configuração para o modelo. Por fim, treinei um novo modelo KMeans com 3 clusters utilizando os dados escalados e salvei o modelo treinado em arquivo, deixando o fluxo mais organizado e preparado para reutilização.

Essa etapa reforçou a importância do pré-processamento dos dados em problemas de aprendizado não supervisionado, principalmente quando utilizamos algoritmos sensíveis à escala das variáveis, como o KMeans.

Link do repositório:
https://github.com/Moquiuti/Clusteriza-o-Lidando-com-dados-sem-r-tulo/blob/main/atividade_otimizacao_clusterizacao.py

1 resposta

Oii Leandro, tudo bem?

Obrigada por compartilhar seu desenvolvimento no fórum! Sua explicação ficou muito bem estruturada: você não apenas aplicou os passos da atividade, mas demonstrou entender o porquê de cada um deles. Destacar que o KMeans é sensível à escala por ser baseado em distância, por exemplo, mostra que você está assimilando os conceitos além do código.

Salvar tanto o scaler quanto o modelo com joblib também é uma prática muito importante e muitas vezes deixada de lado em exercícios. Boa escolha.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade