Inertie
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 6 sur 51.
Ce chapitre porte sur le choix de k. À la fin, vous le choisirez pour les livraisons d’une boulangerie et tracerez les zones :
D’abord, un score. L’inertie additionne les distances au carré de chaque point à son propre centre : elle est faible lorsque les points sont proches de leur centre.
KMeans la conserve dans inertia_. Pour les 180 pommes :
for k in [1, 2, 3, 4]:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(X)
print(k, round(km.inertia_))Cela affiche :
1 1718
2 752
3 230
4 196Plus de centres, des rayons plus courts : l’inertie diminue toujours à mesure que k augmente. Avec un centre par point, elle est de 0 ; la plus petite valeur n’est donc pas la meilleure.
Défi
FacileUne poterie emballe des vases dans des boîtes de quelques tailles. Chaque vase est placé dans la taille la plus proche ; l’inertie mesure à quel point ils s’ajustent mal. Le programme lit budget, le défaut d’ajustement maximal accepté par la poterie.
- Essayez k = 1, 2, 3 et ainsi de suite : ajustez KMeans sur
vaseset affichez l’inertie de chaque k, arrondie. - Arrêtez-vous au premier k dont l’inertie respecte le budget, puis affichez-le.
Pour une autre poterie :
k = 1, inertia 15120
k = 2, inertia 4811
k = 3, inertia 1290
Box sizes needed: 3Essayez vous-même
import numpy as np
from sklearn.cluster import KMeans
# Ne modifiez pas les lignes ci-dessous
rng = np.random.default_rng(8)
# Quatre types de vases : hauteur et largeur typiques en cm, et nombre de vases de chaque type
kinds = [(15, 8, 25), (38, 13, 25), (22, 22, 20), (58, 26, 10)]
parts = []
for h, w, n in kinds:
parts.append(np.column_stack([rng.normal(h, 2.5, n), rng.normal(w, 2, n)]))
# 80 vases, une ligne par vase : hauteur et largeur en cm
vases = np.round(np.concatenate(parts), 1)
# Le degré maximal d’inadéquation, mesuré par l’inertie, que la poterie accepte
budget = int(input())
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage non supervisé
1Découvrir des groupes
Apprendre sans étiquettesMesurer la similaritéK-Means à la mainK-Means avec scikit-learnRécapitulatif : les membres de la salle de sport4Classification hiérarchique
Fusion étape par étapeModèles agglomératifsDendrogrammesRécapitulatif : races de chiens7L’ACP en pratique
Visualiser 64 dimensionsLes composantes comme motifsCompresser et reconstruireL’ACP avant un modèleRécapitulatif : scanner de visages10Projet : Explorateur de chiffres
Observer les chiffresRéduire avec la PCARegrouper les chiffresNommer les groupesRepérer les intrus2Choisir k
InertieLa méthode du coudeScores de silhouetteMettre à l’échelle avant le clusteringRécapitulatif : zones de livraisonEntraînez-vous par vous-même : Compilateur Python en ligne