1
resposta

[Projeto] 08 Faça como eu fiz: lidando com dados sem rótulo

Olá, pessoal!

Nesta atividade, trabalhei com uma base de dados de marketing sem rótulos, ou seja, sem uma coluna de resposta previamente definida. A proposta foi preparar esses dados para um modelo de aprendizado não supervisionado, com o objetivo de identificar possíveis agrupamentos entre consumidores com características semelhantes.

Durante o desenvolvimento, realizei a importação das bibliotecas necessárias, carreguei o dataset com pandas e fiz uma análise inicial da estrutura dos dados. Nessa etapa, identifiquei que a coluna sexo possuía valores categóricos, como F, M e NE, sendo necessário convertê-la para um formato numérico antes de utilizá-la no modelo.

Para isso, apliquei a técnica de One-Hot Encoding, transformando cada categoria em uma coluna binária. Em seguida, concatenei essas novas colunas ao DataFrame original e removi a coluna textual, deixando a base preparada para o treinamento.

Também salvei o encoder treinado utilizando joblib, pensando em um cenário mais próximo do uso real, onde a mesma transformação precisa ser reutilizada em novos dados.

Por fim, treinei um modelo de clusterização com KMeans, configurando dois agrupamentos e uma semente aleatória fixa para garantir reprodutibilidade. Após o treinamento, adicionei ao DataFrame uma coluna com o cluster atribuído a cada registro, permitindo uma análise inicial dos grupos encontrados.

Essa atividade foi importante para reforçar o entendimento sobre aprendizado não supervisionado, principalmente em situações onde não temos uma resposta correta previamente conhecida, mas queremos encontrar padrões escondidos nos dados.

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

1 resposta

Olá, Leandro. Como vai?

O seu projeto ficou espetacular e extremamente maduro! Você seguiu com precisão o pipeline ideal de um projeto de Machine Learning não supervisionado, cobrindo desde o tratamento de variáveis categóricas até a preocupação real de engenharia de dados ao salvar o objeto do encoder com o joblib para garantir a consistência em dados futuros (fase de deploy).

Gostaria de parabenizá-lo por dois pontos cruciais na sua abordagem técnica:

1. Tratamento da coluna "Sexo" com One-Hot Encoding
Modelos baseados em distância, como o KMeans, dependem puramente de cálculos matemáticos (como a distância Euclidiana). Se você tivesse apenas mapeado as categorias como F = 1, M = 2 e NE = 3, o algoritmo interpretaria erroneamente que a categoria 3 está "mais longe" da categoria 1 do que a 2. Ao criar colunas binárias (0 ou 1) com o One-Hot Encoding, você deu a cada categoria o mesmo peso geométrico no espaço vetorial.

2. Uso de Semente Aleatória (Random State)
Garantir a reprodutibilidade é fundamental em Data Science. Como o KMeans inicia os seus centroides de forma aleatória no gráfico, fixar o random_state garante que qualquer outra pessoa (ou você mesmo no futuro) que rodar o código encontre exatamente os mesmos agrupamentos.

Para agregar ainda mais valor aos seus estudos sobre aprendizado não supervisionado, vale a pena discutir um próximo passo analítico essencial em projetos de marketing: como definir se 2 clusters (K=2) é o número ideal de agrupamentos para essa base?

Como os dados não possuem rótulos (não temos uma "resposta certa"), nós usamos técnicas matemáticas para avaliar a qualidade da divisão. A mais famosa delas é o Método do Cotovelo (Elbow Method). Ele calcula a soma dos quadrados das distâncias internas dos clusters (Inércia) para diferentes valores de K.

Ao plotar esse gráfico no seu projeto, você procura o ponto de inflexão da curva (onde a queda da linha deixa de ser abrupta e começa a se estabilizar, parecendo a dobra de um cotovelo). Esse ponto indica o número ideal de personas ou segmentos que o seu time de marketing deveria focar para campanhas personalizadas.

Como uma sugestão de continuação para o seu repositório no GitHub, você poderia criar uma célula de visualização para gerar as estatísticas descritivas (médias de idade, renda ou gastos) agrupadas pela sua nova coluna de cluster. Isso vai revelar o "perfil" de cada grupo, transformando os números do KMeans em insights de negócio puros!

Parabéns pelo excelente nível do projeto e pela organização do repositório!

Espero que possa ter lhe ajudado!