DEV Community

Cover image for K-means não é o suficiente
Lhayana Vieira
Lhayana Vieira

Posted on

K-means não é o suficiente

Muito se fala sobre k-means quando o assunto é clusterização. E o objetivo desse post não é falar mal do algoritmo que minimiza a soma das distâncias quadradas entre os pontos de dados e seus centróides, afinal ele é genial. Mas é importante lembrar que, para usar o k-means, todo os seus dados precisam ser numéricos. E não, não vale usar one hot encoding nos categóricos, pois isso irá distorcer as distâncias euclidianas. Então, na vida real, nem sempre iremos conseguir usar o k-means.

O que usar, então? Como uma boa chata vou responder: depende!

Piada de uma 'Notícia' com o título 'Papagaio aprende a dizer 'Depende' e se torna economista

Se seus dados são todos categóricos (como, por exemplo, dados populacionais de gênero, etnia, profissão, etc), você deve utilizar o k-modes, que ao invés de utilizar a média, utiliza a moda como medida central dos clusters.

Mas nem sempre todos os nossos dados são categóricos, muitas vezes há algumas features categóricas e outras numéricas. Se for o seu caso, use o k-prototypes. Esse algoritmo calcula a dissimilaridade de maneira separada para atributos numéricos e categóricos, e depois combina essas dissimilaridades usando uma soma ponderada.

Deixo abaixo alguns artigos para caso queiram se aprofundar um pouco sobre esses algoritmos:

E se você quiser se aprofundar BASTANTE, recomendo essa aula aqui, é excelente e bem completa.

Eu aprendi isso muito tempo depois de ter estudado sobre clusterização pela primeira vez, então resolvi fazer esse artigo, acredito que isso é algo que devia ser muito mais abordado do que é atualmente. Espero ter te ajudado!

Top comments (0)