Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como utilizar a técnica de clustering conhecida como K-Means Clustering em Python?

0 votos
451 visitas
perguntada Dez 11, 2015 em Aprendizagem de Máquinas por Marcos Gama (36 pontos)  
  • Qual o melhor pacote, Scipy ou SKlearn?
  • Como plotar os clusters se o dataset contiver mais de duas dimensões?
  • É necessário utilizar PCA para reduzir dimensões e conseguir plotar?
Compartilhe

1 Resposta

+1 voto
respondida Dez 11, 2015 por danielcajueiro (5,666 pontos)  

Note que o Scipy e Scikit-learn não são exatamente distribuições totalmente distintas. De fato, o Scikit-learn foi construído a partir do Numpy, Scipy e Matpplotlib.

É válido mencionar antes de qualquer resposta específica que o algoritmo de k-means clustering é um algoritmo bem simples e, por isso, não deve haver tantas diferenças de implementação.

Disclaimer: Eu não comparei desempenho das duas implementações.

Entretanto, tendo dito isso, existem algumas poucas diferenças que devem ser investigadas:

Por exemplo, o scipy apresenta duas versões kmeans e kmeans2. Aparecentemente, kmeans2 é a versão usual do algoritmo que você está buscando. O kmeans é usado como ponto de partida para a técnica conhecida como vector quantization.

Por outro lado, o scikit-learn tem apenas o kmeans, que aparentemente uma diferença é o fato que permite controle sobre a paralelização do problema.

De fato, seria muito legal se você depois pudesse colocar seus próprios achados aqui. Algo interessante por exemplo seria comparar as duas funções scipy.kmeans2 com sklearn.kmeans para ver como elas procedem com diferentes dados e como elas "escalam" com amostras de tamanhos diferentes.

Em relação a visualização, dê uma olhada aqui!

...