t-SNE: Чому рівні значення даних візуально не близькі?


9

У мене 200 точок даних, які мають однакові значення для всіх функцій.

Після зменшення розміру t-SNE вони вже не виглядають настільки рівними, як це: введіть тут опис зображення

Чому вони не в одній точці візуалізації і навіть, здається, розподілені у двох різних кластерах?


4
Обов’язково читайте distill.pub/2016/misread-tsne
Емре

Чи може це бути викликано точністю (подвійний / поплавковий), яку ви використовуєте?
El Burro

Більшість значень - цілі числа. І це дуже рідко, близько 500 функцій з переважно нулями. Я не знаю, чи може це бути викликано точністю. Але відстань між цими кластерами та між цими точками даних порівняно велика.
ScientiaEtVeritas

Які кластери? Я думав, що всі однакові - чи ти маєш на увазі сюжет?
Ель Бурро

Так, я маю на увазі кластери на сюжеті.
ScientiaEtVeritas

Відповіді:


3

Ви правильні, що одні і ті ж значення в T-SNE можуть бути розподілені в різних точках, і причина цього відбувається зрозуміла, якщо ви подивитеся на алгоритм, через який T-SNE працює.

Щоб вирішити своє перше занепокоєння з приводу того, що пункти фактично не збігаються після застосування алгоритму до набору даних. Я залишу вас вправою, щоб перевірити це на собі, розглянемо простий масив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]]))

Ви також помітили, що зміна random_stateфактично модифікує вихідні координати моделі. Немає реальної кореляції між фактичними координатами та їх результатами. З першого кроку TSNE обчислює умовну ймовірність.

Спробуємо тепер раціоналізувати, використовуючи алгоритм, що це відбувається, просто використовуючи математику, без будь-якої інтуїції, на даний момент. Зауважимо, щоxi і xj обидва вектори в цій ситуації. pj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2). Тепер, якщо ми обчислимоpij=pi|j+pj|i2N, ми можемо бачити, що значення дорівнює 1. Після застосування розбіжності KL отримуємо значення, зазначені вище. Тепер давайте застосуємо до цього деяку інтуїцію.pij неофіційно це умовна ймовірність цього xi вибрав би xjяк це сусід. Це виправдовує результат 1 з двох причин. Перший - це те, що іншого сусіда немає, тому він повинен вибрати єдиний інший вектор у списку координат. Крім того, бали однакові, і шанси на те, що вони будуть обрані як інші сусіди, повинні бути високими, як ми бачимо.

Тепер перейдемо до того, чи абсолютні координати в R2мають будь-яке значення. Вони насправді цього не роблять. Випадковість може перерозподілити бали там, де ви хочете, щоб вони пішли. Однак, що цікавіше, це співвідношення відстаней між точками і вони відносні і відносні навіть тоді, коли ми проектуємо його на більш високі розміри, що досить цікаво.

Отже, правда полягає в тому, щоб замість того, щоб дивитися на два кластери, дивитися на відстані між ними, бо це передає більше інформації, ніж самі координати.

Сподіваюся, що це відповіло на ваше запитання :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.