T Sne.el
Σύνοψη
- Ο t-SNE διατηρεί τις τοπικές γειτονιές αντιστοιχίζοντας ζευγαρωτές ομοιότητες μεταξύ υψηλών και χαμηλών διαστάσεων.
- Είναι βελτιστοποιημένος για οπτικοποίηση και συχνά αποκαλύπτει τη δομή συστάδων με σαφήνεια.
- Τα αποτελέσματα εξαρτώνται από perplexity, ρυθμό εκμάθησης και τυχαία αρχικοποίηση, οπότε οι έλεγχοι σταθερότητας είναι σημαντικοί.
Εισαγωγή #
Ο t-SNE δίνει προτεραιότητα στο ποιος είναι κοντά σε ποιον, όχι σε πιστές συνολικές αποστάσεις. Ερμηνεύεται καλύτερα ως ένας χάρτης γειτονίας για διερευνητική ανάλυση.
Αναλυτική Επεξήγηση #
1. Εισαγωγή #
- Κατασκευή ζευγαρωτών ομοιοτήτων (P_{ij}) στον αρχικό χώρο (Γκαουσιανός πυρήνας ανά σημείο, ελεγχόμενος από perplexity).
- Ορισμός ομοιοτήτων (Q_{ij}) στον χώρο χαμηλών διαστάσεων χρησιμοποιώντας μια κατανομή Student-t με βαριά ουρά.
- Ελαχιστοποίηση της απόκλισης Kullback–Leibler (\mathrm{KL}(P \parallel Q)) μέσω κατάβασης κλίσης.
- Η κατανομή με βαριά ουρά αποφεύγει τον συνωστισμό δίνοντας στα απομακρυσμένα σημεία μη αμελητέα επιρροή.
2. Παράδειγμα σε Python #
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
from sklearn.datasets import load_digits
from sklearn.manifold import TSNE
from sklearn.preprocessing import StandardScaler
X, y = load_digits(return_X_y=True)
X = StandardScaler().fit_transform(X)
model = TSNE(n_components=2, perplexity=30, learning_rate=200, random_state=0)
emb = model.fit_transform(X)
plt.figure(figsize=(8, 6))
plt.scatter(emb[:, 0], emb[:, 1], c=y, cmap="tab10", s=15)
plt.colorbar(label="digit")
plt.title("t-SNE embedding of handwritten digits")
plt.tight_layout()
plt.show()
3. Υπερπαράμετροι #
perplexity: ουσιαστικός αριθμός γειτόνων (συνήθως 5–50). Υψηλότερες τιμές συλλαμβάνουν περισσότερη συνολική δομή.learning_rate: πολύ μικρός παγιδεύει τη βελτιστοποίηση, πολύ μεγάλος κάνει τα σημεία να απομακρύνονται· 100–1000 συνήθως λειτουργεί.n_iter: τουλάχιστον 1000 επαναλήψεις συν μια φάσηearly_exaggerationγια προθέρμανση.
4. Συμβουλές #
- Τυποποιήστε τα χαρακτηριστικά και αφαιρέστε διπλότυπα· ο t-SNE είναι ευαίσθητος σε κλίμακα και θόρυβο.
- Για μεγάλα σύνολα δεδομένων, χρησιμοποιήστε Barnes–Hut (
method="barnes_hut") ή υλοποιήσεις επιταχυνόμενες με FFT (openTSNE, FIt-SNE). - Ερμηνεύστε τις αποστάσεις ποιοτικά· ο t-SNE διατηρεί τοπικούς γείτονες αλλά όχι τη συνολική γεωμετρία.
5. Σημειώσεις #
- Ο t-SNE είναι καλύτερος για οπτική επιθεώρηση παρά για μοντελοποίηση κατάντη.
- Εκτελέστε τον πολλές φορές με διαφορετικά seeds/perplexities για να επιβεβαιώσετε ότι τα μοτίβα είναι σταθερά.
- Σκεφτείτε UMAP αν χρειάζεστε ταχύτερες ενσωματώσεις ή μετασχηματισμό ορισμένο για νέα δείγματα.