Tidak, tidak perlu bahwa ini adalah masalahnya, bagaimanapun, ini adalah, dalam cara yang berbelit-belit, tujuan dari T-SNE.
Sebelum masuk ke inti jawaban, mari kita lihat beberapa definisi dasar, baik secara matematis maupun intuitif.
Tetangga Terdekat : Pertimbangkan ruang metrik dan sekumpulan vektor , diberi vektor baru , kami ingin menemukan poin sedemikian rupa sehingga. Secara intuitif, ini hanya jarak minimum menggunakan definisi norma yang sesuai di .RdX1,...,Xn∈Rdx∈Rd||X1−x||≤...≤||Xn−x||Rd
Sekarang sampai pada apakah tetangga terdekat benar-benar penting saat menerapkan pengurangan dimensi. Biasanya dalam jawaban saya, saya bermaksud merasionalisasi sesuatu dengan matematika, kode dan intuisi. Pertama-tama, mari kita pertimbangkan aspek intuitif dari semuanya. Jika Anda memiliki titik yang berjarak dari titik lain, dari pemahaman kami tentang algoritma t-sne kami tahu bahwa jarak ini dipertahankan saat kami beralih ke dimensi yang lebih tinggi. Mari kita lebih lanjut mengasumsikan bahwa titik adalah tetangga terdekat dari dalam beberapa dimensi . Menurut definisi, ada hubungan antara jarak dalam dandyxddd+k. Jadi, kita memiliki intuisi kita yaitu bahwa jarak dijaga melintasi dimensi yang berbeda, atau setidaknya, itulah yang kita tuju. Mari kita coba benarkan dengan beberapa matematika.
Dalam jawaban ini saya berbicara tentang matematika yang terlibat dalam t-sne, meskipun tidak secara detail ( t-SNE: Mengapa nilai data yang sama secara visual tidak tertutup? ). Apa matematika di sini adalah, pada dasarnya memaksimalkan probabilitas bahwa dua titik tetap dekat dalam ruang yang diproyeksikan karena mereka berada di ruang asli dengan asumsi bahwa distribusi titik adalah eksponensial. Jadi, persamaan ini . Perhatikan bahwa probabilitas tergantung pada jarak antara dua titik, sehingga semakin jauh jarak mereka, semakin jauh jarak yang mereka dapatkan saat diproyeksikan ke dimensi yang lebih rendah. Perhatikan bahwa jika mereka berjauhan diRkpj|i=exp(−||xj−xi||22σ2)∑k≠iexp(−||xj−xi||22σ2)Rk, ada peluang bagus mereka tidak akan dekat dalam dimensi yang diproyeksikan. Jadi sekarang, kita memiliki alasan matematis mengapa poin "harus" tetap dekat. Tetapi sekali lagi, karena ini adalah distribusi eksponensial, jika titik-titik ini sangat berjauhan, tidak ada jaminan bahwa properti Tetangga Terdekat dipertahankan, meskipun, inilah tujuannya.
Sekarang akhirnya contoh pengkodean rapi yang menunjukkan konsep ini juga.
from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
X = [[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]]
y = [0,1,2,3,4,5,6,7,8,9]
neighs = KNeighborsClassifier(n_neighbors=3)
neighs.fit(X, y)
X_embedded = TSNE(n_components=1).fit_transform(X)
neighs_tsne = KNeighborsClassifier(n_neighbors=3)
neighs_tsne.fit(X_embedded, y)
print(neighs.predict([[1.1]]))
>>>[0]
print(neighs_tsne.predict([[1.1]]))
>>>[0]
Meskipun ini adalah contoh yang sangat naif dan tidak mencerminkan kerumitannya, ini berhasil dengan eksperimen untuk beberapa contoh sederhana.
EDIT: Juga, menambahkan beberapa poin sehubungan dengan pertanyaan itu sendiri, jadi tidak perlu bahwa ini adalah masalahnya, mungkin, bagaimanapun, merasionalisasi melalui matematika akan membuktikan bahwa Anda tidak memiliki hasil yang konkret (tidak ada ya atau tidak pasti) .
Saya harap ini membereskan beberapa kekhawatiran Anda dengan TSNE.