PCA
Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 26 z 51.
PCA znajduje kierunek największego rozrzutu, a następnie najlepszy kierunek prostopadły do niego i tak dalej: składowe. W przypadku bliźniaczych win:
Cienie każdego wiersza na pierwszych kilku składowych stają się jego nowymi cechami:
from sklearn.decomposition import PCA
scaled = StandardScaler().fit_transform(X)
points = PCA(n_components=2).fit_transform(scaled)
print(X.shape, points.shape)Dla wszystkich 13 pomiarów wina wypisuje to (178, 13) (178, 2).
Najpierw przeskaluj dane. PCA śledzi rozrzut, więc cecha wyrażona w dużych jednostkach, taka jak proline, której wartości sięgają setek, wygrywa już samym rozmiarem:
Wyzwanie
ŚredniLaboratorium wody bada butelki z trzech źródeł, wykonując po 8 pomiarów każdej. Czy mapa 2D pozwoli odróżnić źródła? draw_springs(ax, points) koloruje dowolne punkty 2D według źródła.
- Przeskaluj
X, a następnie zredukuj je do 2 komponentów za pomocą PCA, zapisując wynik wpoints. - Wyświetl liczbę cech przed redukcją i po niej.
- Narysuj punkty za pomocą
draw_springsi wyświetl wykres.
W innym laboratorium, z 6 pomiarami:
From 6 features to 2Coddy opisze Twoją mapę.
Spróbuj swoich sił
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# Laboratorium badające wodę: 8 pomiarów dla każdej ze 120 butelek pochodzących z trzech źródeł
waters = pd.read_csv("waters.csv")
X = waters.drop(columns="spring")
# Rysuje wykres punktowy w 2D, z jedną grupą dla każdego źródła i legendą
def draw_springs(ax, points):
for spring in ["alpine", "volcanic", "coastal"]:
rows = (waters["spring"] == spring).to_numpy()
ax.scatter(points[rows, 0], points[rows, 1], s=16, label=spring)
ax.legend()
fig, ax = plt.subplots()
ax.set_title("Spring Waters in 2D")
ax.set_xlabel("First component")
ax.set_ylabel("Second component")
# Napisz 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