Quantos clusters?

Análise de cluster em Python

Shaumik Daityari

Business Analyst

Como achar o k ideal?

  • Não há método absoluto para achar o nº certo de clusters (k) no k-means
  • Método do cotovelo

Análise de cluster em Python

Revisando distorção

  • Distorção: soma dos quadrados das distâncias dos pontos aos centróides
  • Diminui com mais clusters
  • Vira zero quando o nº de clusters = nº de pontos
  • Gráfico do cotovelo: linha entre nº de clusters e distorção

Análise de cluster em Python

Método do cotovelo

  • Gráfico do cotovelo: relação entre nº de clusters e distorção
  • Ajuda a indicar quantos clusters há nos dados
Análise de cluster em Python

Método do cotovelo em Python

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Análise de cluster em Python

Análise de cluster em Python

Considerações finais sobre o método do cotovelo

  • Só indica o k ideal (nº de clusters)
  • Nem sempre aponta exatamente quantos k usar (nº de clusters)
  • Outras técnicas: silhouette médio e estatística gap
Análise de cluster em Python

A seguir: exercícios

Análise de cluster em Python

Preparing Video For Download...