Dendrogramy
Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 18 z 51.
Drzewo otwierające rozdział to dendrogram. Każda klamra łączy dwie grupy na wysokości, na której się połączyły: im dłuższe jej ramiona, tym bardziej były od siebie oddalone.
Przetnij go linią, a każda gałąź, którą linia przecina, stanie się grupą. Tutaj: 4:
scipy buduje drzewo, rysuje je i przecina za pomocą 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)To wypisuje numer grupy dla każdej piłki, a piłka do koszykówki jest sama:
[2 2 2 1 1 1 3 3 3 4]Przetnij najdłuższe odcinki: poniższe grupy są daleko od siebie.
Wyzwanie
ŚredniPrzewodnik morski grupuje 16 wielorybów i delfinów według długości, masy i głębokości nurkowania. Kod początkowy skaluje ich dane i odczytuje wysokość cięcia, cut.
- Zbuduj drzewo metodą Warda
Zi narysuj je naax: obróć nazwy zwierząt o 90 stopni, a kolory zatrzymaj na wysokości cięcia. - Narysuj cięcie jako szarą przerywaną linię, a następnie wyświetl wykres.
- Wypisz liczbę grup.
Dla 11 owoców i cięcia na wysokości 3.5:
Cut at 3.5: 3 groupsCoddy opisuje twoje drzewo.
Spróbuj swoich sił
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
# 16 wielorybów i delfinów: długość ciała (m), masa (tonnes), maksymalna głębokość nurkowania (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) # miejsce na nazwy pod drzewem
ax.set_title("Whales and Dolphins")
ax.set_ylabel("Merge height")
# Wpisz swój kod poniżej
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nienadzorowane
1Znajdowanie grup
Uczenie się bez etykietMierzenie podobieństwaK-Means krok po krokuK-Means w scikit-learnPodsumowanie: członkowie siłowni4Klasteryzacja hierarchiczna
Łączenie krok po krokuModele aglomeracyjneDendrogramyPodsumowanie: rasy psów7PCA w praktyce
Poznajemy 64 wymiarySkładowe jako wzorceKompresuj i odtwórzPCA przed modelemPodsumowanie: skaner twarzy10Projekt: Odkrywca cyfr
Przyjrzyj się cyfromZmniejsz wymiar za pomocą PCAGrupuj cyfryNazwij grupyZnajdź te nietypowe2Wybór k
InercjaMetoda łokciaWyniki silhouetteSkalowanie przed klasteryzacjąPodsumowanie: strefy dostawPoćwicz samodzielnie: Kompilator Python online