Bạn đã đúng rằng các giá trị tương tự trong T-SNE có thể được phân phối trên các điểm khác nhau, lý do điều này xảy ra rất rõ ràng nếu bạn xem thuật toán mà T-SNE chạy qua.
Để giải quyết mối quan tâm đầu tiên của bạn về các điểm thực sự không giống nhau sau khi thuật toán đã được áp dụng cho bộ dữ liệu. Tôi sẽ để lại cho bạn một bài tập để tự xác minh nó, xem xét một mảng đơn giản và x 2 = [ 0 , 1 ] và chạy thuật toán thực tế chống lại nó và tự mình thấy rằng các điểm kết quả không phải là thực sự giống hệt nhau. Bạn có thể tham khảo chéo câu trả lời của bạn chống lại điều này.x1= [ 0 , 1 ]x2= [ 0 , 1 ]
import numpy as np
from sklearn.manifold import TSNE
m = TSNE(n_components=2, random_state=0)
m.fit_transform(np.array([[0,1],[0,1]]))
Bạn cũng sẽ quan sát thấy việc thay đổi random_state
thực sự làm thay đổi tọa độ đầu ra của mô hình. Không có bất kỳ mối tương quan thực sự nào giữa tọa độ thực tế và đầu ra của chúng. Vì bước đầu tiên của TSNE tính toán khả năng có điều kiện.
Bây giờ chúng ta hãy cố gắng hợp lý hóa, sử dụng thuật toán lý do điều này xảy ra, chỉ sử dụng toán học, mà không có bất kỳ trực giác nào, vào lúc này. Lưu ý rằng vàxTôixjpj | Tôi= e x p ( - | | xj- xTôi| |22 σ2)Σk ≠ ie x p ( - | | xj- xTôi| |22 σ2)ptôi j= ptôi | j+ pj | Tôi2 Nptôi jxTôixj
R2
Vì vậy, sự thật là, thay vì nhìn vào hai cụm, hãy nhìn vào khoảng cách giữa chúng, bởi vì điều đó truyền tải nhiều thông tin hơn chính các tọa độ.
Hi vọng đây là câu trả lời cho câu hỏi của bạn :)