Dendrogrammi
Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 18 di 51.
L'albero introduttivo del capitolo è un dendrogramma. Ogni parentesi unisce due gruppi all'altezza in cui si sono fusi: più alte sono le sue gambe, più distanti erano.
Taglialo con una linea e ogni ramo attraversato dalla linea diventa un gruppo. Qui, 4:
scipy costruisce l’albero, lo disegna e lo taglia con fcluster:
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
Z = linkage(scaled, "ward")
dendrogram(Z, labels=names, leaf_rotation=90, color_threshold=1.2, ax=ax)
ax.axhline(1.2, color="gray", linestyle="--")
groups = fcluster(Z, t=1.2, criterion="distance")
print(groups)Questo stampa un numero di gruppo per ogni palla, con la palla da basket da sola:
[2 2 2 1 1 1 3 3 3 4]Taglia attraverso le gambe più lunghe: i gruppi qui sotto sono molto distanti.
Sfida
MedioUna guida marina raggruppa 16 balene e delfini in base alla lunghezza, al peso e alla profondità di immersione. Il codice iniziale applica loro una scala e legge l’altezza di taglio, cut.
- Costruisci l’albero ward
Ze disegnalo suax: ruota di 90 gradi i nomi degli animali e interrompi i colori al punto di taglio. - Disegna il punto di taglio come una linea grigia tratteggiata, poi mostra il grafico.
- Stampa il numero di gruppi.
Per 11 frutti e un taglio a 3.5:
Cut at 3.5: 3 groupsCoddy descrive il tuo albero.
Provalo tu
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
# 16 balene e delfini: lunghezza del corpo (m), peso (tonnellate), profondità massima di immersione (m)
whales = pd.read_csv("whales.csv")
names = list(whales["animal"])
scaled = StandardScaler().fit_transform(whales[["length_m", "weight_t", "dive_m"]])
cut = float(input())
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.3) # spazio per i nomi sotto l’albero
ax.set_title("Whales and Dolphins")
ax.set_ylabel("Merge height")
# 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