Menu
CoddyTech

Caratterizzare i cluster

Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 11 di 51.

Questo capitolo trasforma i numeri dei cluster in gruppi che le persone possono usare. Alla fine, ogni cluster ha un nome:

120 visitatori di un parco a tema rappresentati come punti, con le ore trascorse nel parco sull’asse orizzontale e le attrazioni visitate su quello verticale, suddivisi in tre gruppi indicati nella legenda: gli amanti delle attrazioni adrenaliniche in alto a destra, le famiglie al centro, i visitatori veloci in basso a sinistra

Un numero come 2 non dice nulla. È il suo profilo a farlo: la media di ogni caratteristica all'interno del cluster. Aggiungi le etichette come colonna, poi raggruppa:

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

Stampa una riga per ogni 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

Ora leggi le righe come parole. Il cluster 2 è giovane, resta 7 ore e fa 14 corse: amanti del brivido. Il cluster 1 se ne va presto: visitatori di passaggio.

challenge icon

Sfida

Medio

Un bar karaoke vuole conoscere i propri clienti. Il codice iniziale li divide in 3 cluster; names contiene un nome per ciascuno, dal minor numero di visite al mese al maggiore.

  1. Aggiungi le etichette a guests come colonna cluster.
  2. Descrivi i cluster: calcola le loro medie e il numero di clienti, ordinandoli per visits_month.
  3. Stampa una riga per cluster con il relativo nome e le medie con 1 cifra decimale.

Per un altro 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

Provalo tu

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

# 110 clienti di un karaoke bar: visits a month, canzoni per visita, ore per visita
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)

# Nomi dei gruppi, da quello con meno visite al mese a quello con più visite
names = ["Once in a while", "Regulars", "Superfans"]

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento non supervisionato

Esercitati da solo: Compilatore Python online