Il metodo del gomito
Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 7 di 51.
Traccia l'inerzia rispetto a k. Ogni nuovo centro divide un gruppo reale e l'inerzia crolla; poi si appiattisce. La piega, il gomito, indica un buon valore di k:
Una regola pratica: fermati quando un centro in più riduce l'inerzia di meno di un quarto. Le riduzioni con le mele: 56%, poi 69%, poi solo 15%. Quindi k = 3:
ax.plot(ks, inertias, marker="o")
ax.axvline(3, linestyle="--")Una curva dolce senza pieghe non indica gruppi distinti. La prossima lezione introduce un secondo giudice.
Sfida
FacileUn’app per piante suddivide le piante da appartamento in piani di cura in base alle esigenze di luce e acqua. Il codice iniziale contiene le inerzie per k from 1 to 8, un grafico e cutoff.
- Partendo da k = 1 e salendo, fermati quando il k successivo riduce l’inerzia di meno di
cutoff. Stampa quel k. - Traccia l’inerzia in funzione di k con dei punti, una linea verticale tratteggiata in corrispondenza del tuo k e mostra il grafico.
Per un’altra app, cutoff 0.25:
Care plans: 3Poi Coddy descrive il tuo grafico.
Provalo tu
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# No cambies las líneas de abajo
rng = np.random.default_rng(17)
# Cuatro tipos de plantas: sus necesidades habituales de luz y agua, y cuántas hay de cada tipo
kinds = [(8.5, 2, 35), (2.5, 7.5, 30), (5, 5, 30), (8, 8, 25)]
parts = []
for l, w, n in kinds:
parts.append(np.column_stack([rng.normal(l, 0.8, n), rng.normal(w, 0.8, n)]))
# 120 plantas de interior, una por fila: necesidades de luz y agua, puntuadas de 1 a 10
plants = np.clip(np.round(np.concatenate(parts), 1), 1, 10)
# Inercia para k = 1 a 8, de Inertia
ks = list(range(1, 9))
inertias = []
for k in ks:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(plants)
inertias.append(km.inertia_)
cutoff = float(input())
fig, ax = plt.subplots()
ax.set_title("Elbow: Care Plans")
ax.set_xlabel("k")
ax.set_ylabel("Inertia")
# Escribe tu código a continuación
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