Nommer les groupes
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 46 sur 51.
Les clusters sont numérotés, pas nommés. Vous pouvez maintenant utiliser les étiquettes : un tableau croisé compte le nombre de chiffres appartenant à chaque cluster, comme ces 1, 7 et 9 répartis dans 3 clusters :
Nommez chaque cluster d’après le chiffre qui y est le plus fréquent. Les scans de ce chiffre sont comptés comme correctement nommés :
ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1) # la colonne la plus grande de chaque ligne
right = ct.max(axis=1).sum()
print(names.tolist(), right)Cela affiche [9, 7, 1] 496 : 496 des 541 scans ont été nommés correctement, par groupes trouvés sans une seule étiquette.
Défi
MoyenNomme tes 10 clusters. Le code de départ contient km, ajusté sans étiquettes ; tu peux maintenant utiliser les chiffres dans y.
- Fais un tableau croisé des clusters avec
yet nomme chaque cluster d’après le chiffre qui y apparaît le plus souvent. - Dans l’ordre des noms, affiche pour chaque cluster le nombre de scans correctement nommés, sa taille et sa proportion de scans correctement nommés, en pourcentage entier.
- Affiche le nombre total de scans correctement nommés et le pourcentage avec 1 décimale.
Pour 5 clusters :
Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)Lequel de tes clusters est le plus faible, et que cache-t-il ?
Essayez vous-même
import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# D'après Look at the Digits : 1,797 images de 64 pixels, avec une intensité d'encre de 0 à 16
digits = load_digits()
X = digits.data
y = digits.target
# D'après Shrink with PCA : 80% de la variance représentée par 13 nombres par image
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# D'après Cluster the Digits : 10 groupes, trouvés sans étiquette
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# É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