Principes de base du partitionnement k-means

Analyse de grappes en Python

Shaumik Daityari

Business Analyst

Pourquoi le partitionnement k-means ?

  • Inconvénient majeur du regroupement hiérarchique : le temps d'exécution
  • K-means est nettement plus rapide sur de grands ensembles de données
Analyse de grappes en Python

Étape 1 : générer les centres de grappes

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs : observations normalisées
  • k_or_guess : nombre de grappes
  • iter : nombre d'itérations (par défaut : 20)
  • thres : seuil (par défaut : 1e-05)
  • check_finite : vérifier que les observations ne contiennent que des nombres finis (par défaut : True)

Retourne deux objets : centres de grappes, distorsion

Analyse de grappes en Python

Comment calcule-t-on la distorsion ?

Analyse de grappes en Python

Étape 2 : générer les étiquettes de grappes

vq(obs, code_book, check_finite=True)
  • obs : observations normalisées
  • code_book : centres de grappes
  • check_finite : vérifier que les observations ne contiennent que des nombres finis (par défaut : True)

Retourne deux objets : une liste d'étiquettes de grappes, une liste de distorsions

Analyse de grappes en Python

À propos des distorsions

  • kmeans retourne une seule valeur de distorsion
  • vq retourne une liste de distorsions.
Analyse de grappes en Python

Exécuter k-means

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Analyse de grappes en Python

Analyse de grappes en Python

À vous de jouer : exercices !

Analyse de grappes en Python

Preparing Video For Download...