Faza 01 · lecția 10
Reducerea dimensionalității
Scopul lecției: Datele cu multe dimensiuni au o structură. O puteți descoperi dacă le priviți din unghiul potrivit.
Versiunea curentă AlexBred.com: primele 100 de lecții ale programului în limba română.
Cuprinsul lecției
- Obiective de învățare
- Problema
- Conceptul
- Blestemul dimensionalității
- PCA: găsiți direcțiile relevante
- Proporția varianței explicate
- Alegerea numărului de componente
- t-SNE: păstrarea vecinătăților
- UMAP: mai rapidă, cu o structură globală mai fidelă
- Ce metodă să utilizați și când
- PCA cu nucleu
- Eroarea de reconstrucție
- Construirea soluției
- Pasul 1: PCA de la zero
- Pasul 2: Testarea pe date sintetice
- Pasul 3: Cifrele MNIST în 2D
- Pasul 4: Comparația cu sklearn
- Pasul 5: Comparația cu UMAP
- Utilizarea soluției
- Livrarea rezultatului
- Exerciții
- Termeni-cheie
- Lecturi suplimentare
Datele cu multe dimensiuni au o structură. O puteți descoperi dacă le priviți din unghiul potrivit.
Tip: Construire Limbaj: Python Cerințe preliminare: Faza 1, lecțiile 01 (Intuiție pentru algebra liniară), 02 (Vectori, matrice și operații), 03 (Transformări matriciale), 06 (Probabilități și distribuții) Durată: ~90 de minute
Obiective de învățare
- Implementarea PCA de la zero: centrarea datelor, calcularea matricei de covarianță, descompunerea în valori și vectori proprii și proiectarea
- Utilizarea proporției varianței explicate și a metodei cotului pentru alegerea numărului de componente principale
- Compararea PCA, t-SNE și UMAP pentru vizualizarea cifrelor MNIST în 2D și explicarea compromisurilor dintre aceste metode
- Aplicarea PCA cu nucleu (kernel PCA) și nucleu RBF pentru separarea structurilor neliniare ale datelor pe care PCA standard nu le poate separa
Problema
Aveți un set de date cu 784 de caracteristici pentru fiecare exemplu. Acestea pot fi valorile pixelilor unor cifre scrise de mână, nivelurile de expresie ale genelor sau semnale despre comportamentul utilizatorilor. Nu puteți vizualiza 784 de dimensiuni. Nu le puteți reprezenta grafic. Nici măcar nu le puteți concepe intuitiv.
În multe seturi de date, o parte dintre cele 784 de caracteristici sunt redundante, iar structura dominantă se află pe o varietate cu mult mai puține dimensiuni. Pentru a descrie cifra „7” scrisă de mână nu sunt necesare 784 de numere independente. Pot fi suficiente câteva caracteristici, precum unghiul liniei, lungimea barei transversale și gradul de înclinare. Dimensiunile rămase nu sunt însă automat zgomot: unele pot păstra semnal relevant pentru o anumită sarcină.
Reducerea dimensionalității identifică această varietate mai mică. Ea comprimă datele din 784 de dimensiuni în 2, 10 sau 50 de dimensiuni, păstrând structura relevantă.
Conceptul
Blestemul dimensionalității
Spațiile cu multe dimensiuni sunt contraintuitive. Pe măsură ce numărul dimensiunilor crește, trei proprietăți încetează să se comporte conform intuiției.
Distanțele pot deveni mai puțin discriminante. Pentru puncte eșantionate din anumite distribuții, raportul dintre distanțele apropiate și cele îndepărtate tinde să se apropie de 1 pe măsură ce dimensionalitatea crește. Efectul depinde de distribuția datelor, de scalarea coordonatelor și de metrica aleasă, dar poate reduce eficiența căutării celor mai apropiați vecini.
Dimensiune Raportul mediu al distanțelor (max/min între puncte aleatorii)
2 ~5.0
10 ~1.8
100 ~1.2
1000 ~1.02
Volumul se concentrează în apropierea frontierei. Un hipercub unitar în d dimensiuni are 2^d colțuri, dar colțurile propriu-zise nu conțin volum. În dimensiuni mari, o proporție tot mai mare a volumului se află aproape de frontieră, departe de centru. Punctele de date devin rare în interior, iar modelele dispun de mai puține exemple locale.
Aveți nevoie de exponențial mai multe date. Pentru a menține aceeași rezoluție pe fiecare axă, numărul necesar de exemple crește exponențial cu dimensionalitatea. De exemplu, dacă fiecare axă este împărțită în 10 intervale, trecerea de la 2D la 20D multiplică numărul de celule cu 10^18. Reducerea numărului de dimensiuni poate readuce densitatea datelor la un nivel cu care se poate lucra.
Notă tehnică a traducerii: Originalul prezintă drept universale concentrarea distanțelor și factorul 10^18 și afirmă că volumul hipercubului se concentrează în colțuri. Concentrarea distanțelor depinde de distribuție, scalare și metrică; volumul se concentrează în apropierea frontierei, nu în colțurile propriu-zise; iar factorul 10^18 presupune, de exemplu, 10 intervale pe fiecare dintre cele 18 axe suplimentare.
PCA: găsiți direcțiile relevante
Analiza componentelor principale (Principal Component Analysis, PCA) identifică axele de-a lungul cărora datele variază cel mai mult. Ea rotește sistemul de coordonate astfel încât prima axă să surprindă cea mai mare varianță, a doua axă să surprindă următoarea varianță ca mărime și așa mai departe.
Algoritmul:
1. Centrați datele (scădeți media din fiecare caracteristică)
2. Calculați covarianța (modul în care caracteristicile variază împreună)
3. Calculați valorile și vectorii proprii (găsiți direcțiile principale)
4. Sortați după valoarea proprie (cea mai mare varianță prima)
5. Proiectați (păstrați primii k vectori proprii, eliminați-i pe ceilalți)
De ce folosim descompunerea în valori și vectori proprii? Matricea de covarianță este simetrică și pozitiv semidefinită. Vectorii săi proprii reprezintă direcții ortogonale în spațiul caracteristicilor. Valorile proprii indică varianța surprinsă de fiecare direcție. Vectorul propriu asociat celei mai mari valori proprii este orientat în direcția varianței maxime.
- Înainte de PCA: norul de date este răspândit în diagonală de-a lungul axelor x și y
- După PCA: sistemul de coordonate este rotit astfel încât PC1 să fie aliniată cu direcția varianței maxime, adică răspândirea alungită, iar PC2 cu direcția varianței minime, adică răspândirea îngustă
- Reducerea dimensionalității: eliminarea PC2 proiectează datele pe PC1 și elimină doar o fracțiune mică din varianța totală
Proporția varianței explicate
Fiecare componentă principală surprinde o fracțiune din varianța totală. Proporția varianței explicate arată mărimea acestei fracțiuni.
Componentă Valoare proprie Proporție explicată Cumulativ
PC1 4.73 0.473 0.473
PC2 2.51 0.251 0.724
PC3 1.12 0.112 0.836
PC4 0.89 0.089 0.925
...
Când varianța explicată cumulată ajunge la 0.95, acel număr de componente explică 95% din varianța totală. Aceasta nu înseamnă automat că păstrează 95% din informația relevantă pentru sarcina ulterioară, iar componentele rămase nu sunt neapărat zgomot: direcțiile cu varianță mică pot conține semnal predictiv.
Notă tehnică a traducerii: Originalul echivalează varianța explicată cu informația și tratează componentele cu varianță mică drept zgomot. PCA este o metodă nesupravegheată: ordonează direcțiile după varianță, nu după relevanța lor pentru o etichetă sau pentru o sarcină ulterioară.
Alegerea numărului de componente
Trei strategii:
- Prag. Păstrați suficiente componente pentru a explica 90–95% din varianță.
- Metoda cotului. Reprezentați grafic varianța explicată de fiecare componentă. Căutați o scădere bruscă.
- Performanța sarcinii ulterioare. Utilizați PCA ca etapă de preprocesare. Explorați mai multe valori k și măsurați acuratețea modelului. Valoarea k optimă se află acolo unde acuratețea se plafonează.
t-SNE: păstrarea vecinătăților
t-Distributed Stochastic Neighbor Embedding (t-SNE) este concepută pentru vizualizare. Metoda proiectează datele cu multe dimensiuni în 2D sau 3D, păstrând punctele care se află în vecinătate.
Intuiția este următoarea: în spațiul inițial, calculați o distribuție de probabilitate peste perechile de puncte pe baza distanțelor dintre ele. Punctele apropiate primesc o probabilitate mare, iar cele îndepărtate o probabilitate mică. Apoi găsiți un aranjament 2D în care se păstrează aceeași distribuție de probabilitate. Punctele care erau vecine în 784 de dimensiuni rămân vecine în 2D.
Proprietăți esențiale ale t-SNE:
- Este neliniară. Poate desfășura varietăți complexe pe care PCA nu le poate reprezenta.
- Este stocastică. Rulările diferite produc configurații diferite.
- Parametrul de perplexitate controlează numărul vecinilor luați în considerare; intervalul uzual este 5–50.
- t-SNE păstrează în primul rând vecinătățile locale. Distanțele globale dintre clustere, precum și dimensiunea, densitatea și forma lor nu trebuie interpretate direct.
- Este lentă pe seturi de date mari. În implementarea scikit-learn utilizată mai jos, metoda Barnes–Hut implicită are complexitatea O(n log n), iar metoda exactă are complexitatea O(n^2).
Notă tehnică a traducerii: Originalul afirmă că numai clusterele în sine sunt relevante. Într-o reprezentare t-SNE, vecinătățile locale sunt obiectul principal al optimizării; geometria globală și aspectul clusterelor pot fi influențate de hiperparametri și de inițializare.
Notă tehnică a traducerii: Originalul atribuie în mod implicit metodei t-SNE complexitatea O(n^2). În
sklearn.manifold.TSNE, utilizat în această lecție, metoda implicită este Barnes–Hut, cu complexitatea O(n log n); complexitatea O(n^2) se aplică atunci când este selectată metoda exactă.
UMAP: mai rapidă, cu o structură globală mai fidelă
Uniform Manifold Approximation and Projection (UMAP) funcționează asemănător cu t-SNE, dar are două avantaje:
- Este mai rapidă. Utilizează grafuri aproximative ale celor mai apropiați vecini în loc să calculeze toate distanțele dintre perechi.
- Păstrează mai bine structura globală. Pozițiile relative ale clusterelor din rezultat tind să fie mai semnificative decât în t-SNE.
UMAP construiește un graf ponderat în spațiul cu multe dimensiuni, numit „reprezentare topologică fuzzy”, apoi găsește o configurație într-un spațiu cu puține dimensiuni care păstrează cât mai bine acest graf.
Parametri esențiali:
n_neighbors: numărul vecinilor care definesc structura locală, asemănător perplexității. Valorile mai mari păstrează mai mult din structura globală.min_dist: cât de compact sunt grupate punctele în rezultat. Valorile mai mici creează clustere mai dense.
Ce metodă să utilizați și când
| Metodă | Caz de utilizare | Ce păstrează | Viteză |
|---|---|---|---|
| PCA | Preprocesare înainte de antrenare | Varianța globală | Rapidă (exactă), funcționează cu milioane de exemple |
| PCA | Vizualizare exploratorie rapidă | Structura liniară | Rapidă |
| t-SNE | Grafice 2D la calitate de publicare | Vecinătățile locale | Lentă (ideal sub 10.000 de exemple) |
| UMAP | Vizualizare 2D la scară mare | Structura locală și o parte din cea globală | Medie (gestionează milioane de exemple) |
| PCA | Reducerea caracteristicilor pentru modele | Caracteristici ordonate după varianță | Rapidă |
| t-SNE / UMAP | Înțelegerea structurii clusterelor | Separarea clusterelor | De la medie la lentă |
Regulă orientativă: utilizați PCA pentru preprocesare și comprimarea datelor. Utilizați t-SNE sau UMAP atunci când trebuie să vizualizați structura în 2D.
PCA cu nucleu
PCA standard identifică subspații liniare. Ea rotește sistemul de coordonate și elimină axe. Dar ce se întâmplă dacă datele se află pe o varietate neliniară? Un cerc în 2D nu poate fi separat de nicio dreaptă. PCA standard nu este de ajutor în acest caz.
PCA cu nucleu aplică PCA într-un spațiu de caracteristici cu multe dimensiuni, indus de o funcție nucleu, fără a calcula explicit coordonatele din acel spațiu. Acesta este trucul nucleului, aceeași idee care stă la baza SVM-urilor.
Algoritmul:
- Calculați matricea nucleu K, unde K_ij = k(x_i, x_j)
- Centrați matricea nucleu în spațiul caracteristicilor
- Calculați valorile și vectorii proprii ai matricei nucleu centrate
- Pentru datele de antrenare, coordonatele componentei i sunt proporționale cu sqrt(lambda_i) * v_i; vectorii v_i / sqrt(lambda_i) furnizează coeficienții normalizați folosiți pentru proiectarea prin nucleu, în funcție de convenția de normalizare adoptată
Notă tehnică a traducerii: Originalul numește „proiecții” vectorii proprii scalați cu 1/sqrt(lambda_i). Aceștia sunt coeficienții normalizați ai axelor din spațiul caracteristicilor; pentru punctele de antrenare, scorurile componentelor sunt proporționale cu sqrt(lambda_i) * v_i. Factorii exacți depind și de normalizarea matricei nucleu.
Funcții nucleu uzuale:
| Nucleu | Formulă | Potrivit pentru |
|---|---|---|
| RBF (Gaussian) | exp(-gamma * ||x - y||^2) | Majoritatea datelor neliniare, varietăți netede |
| Polinomial | (x . y + c)^d | Relații polinomiale |
| Sigmoid | tanh(alpha * x . y + c) | Transformări asemănătoare celor din rețelele neuronale |
Când să utilizați PCA cu nucleu și când PCA standard:
| Criteriu | PCA standard | PCA cu nucleu |
|---|---|---|
| Structura datelor | Subspațiu liniar | Varietate neliniară |
| Viteză | O(min(n^2 d, d^2 n)) | O(n^2 d + n^3) |
| Interpretabilitate | Componentele sunt combinații liniare ale caracteristicilor | Componentele nu pot fi interpretate direct prin caracteristici |
| Scalabilitate | Funcționează cu milioane de exemple | Matricea nucleu are dimensiunea n x n și este limitată de memorie |
| Reconstrucție | Transformare inversă directă | Necesită aproximarea preimaginii |
Exemplul clasic îl reprezintă cercurile concentrice în 2D: două inele de puncte, unul în interiorul celuilalt. PCA standard le proiectează pe ambele pe aceeași dreaptă, ceea ce este inutil pentru clasificare. PCA cu nucleu RBF proiectează cercul interior și cercul exterior în regiuni diferite, făcându-le separabile liniar.
Eroarea de reconstrucție
Cât de bună este reducerea dimensionalității? Ați comprimat 784 de dimensiuni la 50. Ce ați pierdut?
Măsurați eroarea de reconstrucție:
- Proiectați datele centrate în k dimensiuni: X_reduced = (X - mean) @ W_k
- Reconstruiți și readăugați media: X_hat = X_reduced @ W_k^T + mean
- Calculați MSE: mean((X - X_hat)^2)
Notă tehnică a traducerii: Formulele abreviate din original omit centrarea datelor înainte de proiecție și readăugarea mediei după transformarea inversă. Aceste două operații sunt necesare pentru ca reconstrucția să revină în spațiul datelor inițiale.
Pentru PCA, eroarea de reconstrucție are o relație clară cu varianța explicată:
Varianța reziduală totală = suma valorilor proprii NEINCLUSE
Varianța totală = suma TUTUROR valorilor proprii
Fracțiunea pierdută = (suma valorilor proprii eliminate) / (suma tuturor valorilor proprii)
Notă tehnică a traducerii: Originalul identifică direct eroarea de reconstrucție cu suma valorilor proprii eliminate. Pentru matricea de covarianță calculată de
np.covcu normalizarea 1/(n-1), această sumă este varianța reziduală totală. Valoareamean((X - X_hat)^2)calculată peste toate cele n * d elemente este((n-1)/(n*d))înmulțit cu această sumă.
Proporția varianței explicate pentru fiecare componentă este:
explained_ratio_k = valoare_proprie_k / suma(tuturor valorilor proprii)
Reprezentarea varianței explicate cumulate în funcție de numărul componentelor produce curba „cotului”. Numărul potrivit de componente este acela pentru care:
- Curba se aplatizează, ceea ce indică beneficii marginale descrescătoare
- Varianța cumulată depășește pragul ales, de obicei 0.90 sau 0.95
- Performanța sarcinii ulterioare se plafonează
Eroarea de reconstrucție este utilă și dincolo de alegerea lui k. O puteți folosi pentru detectarea anomaliilor: exemplele cu eroare mare de reconstrucție sunt observații atipice (outliers), care nu corespund subspațiului învățat. Aceasta este baza detectării anomaliilor cu PCA în sistemele de producție.
pca-axes
Construirea soluției
Pasul 1: PCA de la zero
import numpy as np
class PCA:
def __init__(self, n_components):
self.n_components = n_components
self.components = None
self.mean = None
self.eigenvalues = None
self.explained_variance_ratio_ = None
def fit(self, X):
self.mean = np.mean(X, axis=0)
X_centered = X - self.mean
cov_matrix = np.cov(X_centered, rowvar=False)
eigenvalues, eigenvectors = np.linalg.eigh(cov_matrix)
sorted_idx = np.argsort(eigenvalues)[::-1]
eigenvalues = eigenvalues[sorted_idx]
eigenvectors = eigenvectors[:, sorted_idx]
self.components = eigenvectors[:, :self.n_components].T
self.eigenvalues = eigenvalues[:self.n_components]
total_var = np.sum(eigenvalues)
self.explained_variance_ratio_ = self.eigenvalues / total_var
return self
def transform(self, X):
X_centered = X - self.mean
return X_centered @ self.components.T
def fit_transform(self, X):
self.fit(X)
return self.transform(X)
Pasul 2: Testarea pe date sintetice
np.random.seed(42)
n_samples = 500
t = np.random.uniform(0, 2 * np.pi, n_samples)
x1 = 3 * np.cos(t) + np.random.normal(0, 0.2, n_samples)
x2 = 3 * np.sin(t) + np.random.normal(0, 0.2, n_samples)
x3 = 0.5 * x1 + 0.3 * x2 + np.random.normal(0, 0.1, n_samples)
X_synthetic = np.column_stack([x1, x2, x3])
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X_synthetic)
print(f"Original shape: {X_synthetic.shape}")
print(f"Reduced shape: {X_reduced.shape}")
print(f"Explained variance ratios: {pca.explained_variance_ratio_}")
print(f"Total variance captured: {sum(pca.explained_variance_ratio_):.4f}")
Pasul 3: Cifrele MNIST în 2D
from sklearn.datasets import fetch_openml
mnist = fetch_openml("mnist_784", version=1, as_frame=False, parser="auto")
X_mnist = mnist.data[:5000].astype(float)
y_mnist = mnist.target[:5000].astype(int)
pca_mnist = PCA(n_components=50)
X_pca50 = pca_mnist.fit_transform(X_mnist)
print(f"50 components capture {sum(pca_mnist.explained_variance_ratio_):.2%} of variance")
pca_2d = PCA(n_components=2)
X_pca2d = pca_2d.fit_transform(X_mnist)
print(f"2 components capture {sum(pca_2d.explained_variance_ratio_):.2%} of variance")
Pasul 4: Comparația cu sklearn
from sklearn.decomposition import PCA as SklearnPCA
from sklearn.manifold import TSNE
sklearn_pca = SklearnPCA(n_components=2)
X_sklearn_pca = sklearn_pca.fit_transform(X_mnist)
print(f"\nOur PCA explained variance: {pca_2d.explained_variance_ratio_}")
print(f"Sklearn PCA explained variance: {sklearn_pca.explained_variance_ratio_}")
diff = np.abs(np.abs(X_pca2d) - np.abs(X_sklearn_pca))
print(f"Max absolute difference: {diff.max():.10f}")
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_tsne = tsne.fit_transform(X_mnist)
print(f"\nt-SNE output shape: {X_tsne.shape}")
Notă tehnică a traducerii: Comparația cu valori absolute din original tratează numai ambiguitatea de semn a fiecărui vector propriu. Dacă există valori proprii egale sau aproape egale, bazele valide ale aceluiași subspațiu pot diferi și printr-o rotație ortogonală. În acest caz, comparați proiecțiile sau reconstrucțiile, ori aliniați bazele printr-o transformare Procrustes.
Pasul 5: Comparația cu UMAP
try:
from umap import UMAP
reducer = UMAP(n_components=2, n_neighbors=15, min_dist=0.1, random_state=42)
X_umap = reducer.fit_transform(X_mnist)
print(f"UMAP output shape: {X_umap.shape}")
except ImportError:
print("Install umap-learn: pip install umap-learn")
Utilizarea soluției
PCA ca etapă de preprocesare înaintea unui clasificator:
from sklearn.decomposition import PCA as SklearnPCA
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X_train, X_test, y_train, y_test = train_test_split(
X_mnist, y_mnist, test_size=0.2, random_state=42
)
results = {}
for k in [10, 30, 50, 100, 200]:
pca_k = SklearnPCA(n_components=k)
X_tr = pca_k.fit_transform(X_train)
X_te = pca_k.transform(X_test)
clf = LogisticRegression(max_iter=1000, random_state=42)
clf.fit(X_tr, y_train)
acc = accuracy_score(y_test, clf.predict(X_te))
var_captured = sum(pca_k.explained_variance_ratio_)
results[k] = (acc, var_captured)
print(f"k={k:>3d} accuracy={acc:.4f} variance={var_captured:.4f}")
Performanța se plafonează cu mult înainte de a ajunge la 784 de dimensiuni. Acel platou reprezintă punctul de operare potrivit.
Livrarea rezultatului
Această lecție produce:
outputs/skill-dimensionality-reduction.md— un modul reutilizabil pentru alegerea tehnicii potrivite de reducere a dimensionalității pentru o anumită sarcină
Exerciții
-
Modificați clasa PCA pentru a accepta
inverse_transform. Reconstruiți cifrele MNIST din 10, 50 și 200 de componente. Afișați eroarea de reconstrucție, adică diferența pătratică medie față de original, pentru fiecare caz. -
Rulați t-SNE pe aceeași submulțime MNIST cu valorile de perplexitate 5, 30 și 100. Descrieți cum se modifică rezultatul. De ce influențează perplexitatea compactitatea clusterelor?
-
Luați un set de date cu 50 de caracteristici, dintre care numai 5 sunt informative; generați-l cu
sklearn.datasets.make_classification. Aplicați PCA și examinați dacă această structură este vizibilă în curba varianței explicate. Repetați experimentul după ce măriți varianța caracteristicilor neinformative și explicați de ce PCA poate să nu recupereze cele 5 caracteristici relevante pentru clasificare.
Notă tehnică a traducerii: Originalul presupune că PCA va identifica cele 5 caracteristici informative. PCA nu folosește etichetele și caută direcții cu varianță mare; prin urmare, caracteristicile predictive cu varianță mică pot fi depășite de caracteristici neinformative cu varianță mare.
Termeni-cheie
| Termen | Formulare uzuală | Ce înseamnă de fapt |
|---|---|---|
| Blestemul dimensionalității | „Prea multe caracteristici” | Distanțele, volumele și densitatea datelor se comportă contraintuitiv pe măsură ce crește numărul dimensiunilor. Pentru compensare, modelele au nevoie de exponențial mai multe date. |
| PCA | „Reducerea dimensiunilor” | Rotirea sistemului de coordonate astfel încât axele să se alinieze cu direcțiile varianței maxime, urmată de eliminarea axelor cu varianță redusă. |
| Componentă principală | „O direcție importantă” | Un vector propriu al matricei de covarianță. Direcția din spațiul caracteristicilor de-a lungul căreia datele variază cel mai mult. |
| Proporția varianței explicate | „Câtă varianță surprinde această componentă” | Fracțiunea din varianța totală surprinsă de o componentă principală. Însumați primele k proporții pentru a vedea câtă varianță păstrează k componente. |
| Matrice de covarianță | „Cum sunt corelate caracteristicile” | O matrice simetrică în care elementul (i,j) măsoară modul în care caracteristica i și caracteristica j variază împreună. Elementele diagonale sunt varianțele individuale. |
| t-SNE | „Graficul acela cu clustere” | O metodă neliniară care proiectează datele cu multe dimensiuni în 2D, păstrând probabilitățile de vecinătate dintre perechi. Este potrivită pentru vizualizare, nu pentru preprocesare. |
| UMAP | „t-SNE mai rapid” | O metodă neliniară bazată pe analiza topologică a datelor. Păstrează structura locală și o parte din cea globală. Se scalează mai bine decât t-SNE. |
| Perplexitate | „Un reglaj t-SNE” | Controlează numărul efectiv de vecini luați în considerare de fiecare punct. Perplexitatea redusă se concentrează asupra structurii foarte locale. Perplexitatea ridicată surprinde tipare mai ample. |
| Varietate (manifold) | „Suprafața pe care se află datele” | O suprafață cu puține dimensiuni, inclusă într-un spațiu cu mai multe dimensiuni. O foaie de hârtie mototolită în 3D este o varietate 2D. |
Lecturi suplimentare
- A Tutorial on Principal Component Analysis (Shlens) — deducere clară a PCA de la principii fundamentale
- How to Use t-SNE Effectively (Wattenberg et al.) — ghid interactiv despre capcanele t-SNE și alegerea parametrilor
- UMAP documentation — teoria și recomandările practice oferite de autorii UMAP
Sursă: Dimensionality Reduction — originalul Navigare: înapoi: 01.09 — Teoria informației · Faza 1 — Fundamente matematice · Catalog complet · în continuare: 01.11 — Descompunerea în valori singulare.