Inerzia
Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 6 di 51.
Questo capitolo parla di come scegliere k. Al termine, lo sceglierai per le consegne di una panetteria e mapperai le zone:
Per prima cosa, un punteggio. L'inerzia somma le distanze al quadrato di ogni punto dal proprio centro: è piccola quando i punti sono vicini ai loro centri.
KMeans la conserva in inertia_. Per le 180 mele:
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_))Questo stampa:
1 1718
2 752
3 230
4 196Più centri, raggi più corti: l’inerzia diminuisce sempre all’aumentare di k. Con un centro per punto è 0, quindi il valore più piccolo non è il migliore.
Sfida
FacileUna bottega di ceramiche impacchetta i vasi in scatole di poche dimensioni. A ogni vaso viene assegnata la dimensione più vicina; l’inerzia misura quanto male vi si adattano. Il programma legge budget, il massimo disadattamento che la bottega accetta.
- Prova k = 1, 2, 3 e così via: adatta KMeans a
vasese stampa l’inerzia di ogni k, arrotondata. - Fermati al primo k la cui inerzia rientra nel budget e stampalo.
Per un’altra bottega di ceramiche:
k = 1, inertia 15120
k = 2, inertia 4811
k = 3, inertia 1290
Box sizes needed: 3Provalo tu
import numpy as np
from sklearn.cluster import KMeans
# Non modificare le righe qui sotto
rng = np.random.default_rng(8)
# Quattro tipi di vaso: altezza e larghezza tipiche in cm e quantità di ciascun tipo
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 vasi, uno per riga: altezza e larghezza in cm
vases = np.round(np.concatenate(parts), 1)
# Il massimo scostamento, misurato come inerzia, accettato dal laboratorio di ceramica
budget = int(input())
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento non supervisionato
1Trovare gruppi
Apprendimento senza etichetteMisurare la similaritàK-Means a manoK-Means in scikit-learnRiepilogo: iscritti alla palestra4Clustering gerarchico
Unire passo dopo passoModelli agglomerativiDendrogrammiRiepilogo: razze canine7PCA nella pratica
Vedere 64 dimensioniComponenti come schemiComprimere e ricostruirePCA prima di un modelloRiepilogo: scanner facciale10Progetto: Esplorare le cifre
Osserva le cifreRiduci con PCARaggruppa le cifreDai un nome ai gruppiTrova gli elementi insoliti2Scelta di k
InerziaIl metodo del gomitoPunteggi silhouetteScala prima del clusteringRiepilogo: zone di consegnaEsercitati da solo: Compilatore Python online