Menu
CoddyTech

Caractériser les clusters

Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 11 sur 51.

Ce chapitre transforme les numéros de cluster en groupes que les gens peuvent utiliser. À la fin, chaque cluster a un nom :

120 visiteurs de parc à thème représentés par des points, les heures passées dans le parc sur l’axe horizontal et les attractions empruntées sur l’axe vertical, répartis en trois groupes nommés dans la légende : les amateurs de sensations fortes en haut à droite, les familles au milieu, les visiteurs pressés en bas à gauche

Un nombre comme 2 ne dit rien. C’est son profil qui est parlant : la moyenne de chaque caractéristique dans le cluster. Ajoutez les étiquettes comme colonne, puis regroupez :

park["cluster"] = km.labels_
print(park.groupby("cluster").mean().round(1))

Cela affiche une ligne par cluster :

         hours  rides   age
cluster
0          6.0    6.2  38.4
1          2.4    3.0  45.8
2          6.8   13.9  20.7

Lisez maintenant les lignes comme des mots. Le cluster 2 est jeune, reste 7 heures et effectue 14 trajets : amateurs de sensations fortes. Le cluster 1 part tôt : visiteurs de passage.

challenge icon

Défi

Moyen

Un bar karaoké veut mieux connaître sa clientèle. Le code de départ la répartit en 3 groupes ; names contient un nom pour chacun, du moins grand au plus grand nombre de visites par mois.

  1. Ajoute les étiquettes à guests dans une colonne cluster.
  2. Établis le profil des groupes : leurs moyennes et leur nombre de clients, triés selon visits_month.
  3. Affiche une ligne par groupe avec son nom et ses moyennes arrondies à 1 décimale.

Pour un autre bar :

Once in a while: 30 guests, 1.4 visits a month, 2.5 songs, 3.2 hours
Regulars: 45 guests, 3.0 visits a month, 4.6 songs, 2.0 hours
Superfans: 15 guests, 7.4 visits a month, 9.2 songs, 2.8 hours

Essayez vous-même

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 110 clients d'un bar karaoké : visits a month, chansons par visite, heures par visite
guests = pd.read_csv("karaoke.csv")
scaled = StandardScaler().fit_transform(guests)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(scaled)

# Noms des groupes, du moins grand au plus grand nombre de visites par mois
names = ["Once in a while", "Regulars", "Superfans"]

# Écrivez votre code ci-dessous
quiz iconTestez-vous

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é

Entraînez-vous par vous-même : Compilateur Python en ligne