PCA
Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 26 di 51.
PCA trova la direzione di maggiore dispersione, poi la migliore perpendicolare a essa, e così via: le componenti. Per i gemelli del vino:
Le ombre di ogni riga sulle prime componenti diventano le sue nuove caratteristiche:
from sklearn.decomposition import PCA
scaled = StandardScaler().fit_transform(X)
points = PCA(n_components=2).fit_transform(scaled)
print(X.shape, points.shape)Per tutte le 13 misurazioni del vino, stampa (178, 13) (178, 2).
Prima, scala. PCA insegue la dispersione, quindi una caratteristica espressa in unità grandi, come la prolina nell’ordine delle centinaia, prevale solo per le sue dimensioni:
Sfida
MedioUn laboratorio delle acque analizza bottiglie provenienti da tre sorgenti, con 8 misurazioni ciascuna. Una mappa 2D può distinguere le sorgenti? draw_springs(ax, points) colora tutti i punti 2D in base alla sorgente.
- Scala
X, poi riducila a 2 componenti con PCA e inseriscila inpoints. - Stampa il numero di caratteristiche prima e dopo.
- Disegna i punti con
draw_springse mostra il grafico.
Per un altro laboratorio, con 6 misurazioni:
From 6 features to 2Coddy descrive la tua mappa.
Provalo tu
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# Un laboratorio di analisi dell'acqua: 8 misurazioni per ciascuna delle 120 bottiglie provenienti da tre sorgenti
waters = pd.read_csv("waters.csv")
X = waters.drop(columns="spring")
# Disegna un grafico a dispersione di punti 2D, con un gruppo per sorgente e una legenda
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")
# 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