t-SNE зі змішаними безперервними та бінарними змінними


10

В даний час я досліджую візуалізацію об'ємних даних за допомогою t-SNE. У мене є деякі дані зі змішаними бінарними та безперервними змінними, і, схоже, ці дані занадто легко кластерують бінарні дані. Звичайно, це очікується для масштабованих (між 0 і 1) даних: евклідова відстань завжди буде найбільшим / найменшим між бінарними змінними. Як слід мати справу зі змішаними бінарними / безперервними наборами даних за допомогою t-SNE? Чи слід скидати двійкові стовпці? Це там metricми можемо використати інше ?

Як приклад розглянемо цей пітон код:

x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]

X = np.c_[x1, x2, x3]

# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph

тому мої вихідні дані:

необроблені дані

де колір є значенням третьої ознаки (x3) - у 3D точки даних лежать у двох площинах (x3 = 0 площині та x3 = 1 площині).

Потім я виконую t-SNE:

tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)

з отриманим сюжетом:

tsne_data

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


1
Примітка. Мені все ще цікаво почути коментарі з цього приводу, а також щодо застосунку UMAP для цього простору.
FChm

Дякую за щедроту, знову зацікавлений, але не витратили багато часу на розгляд цього, щоб бути справедливим. У мене, можливо, буде якийсь час, щоб зробити початкові дослідження, і я додамо оновлення, якщо це необхідно.
FChm

2
Я зіткнувся з цією проблемою на практиці. Я думаю, що це не властиво tSNE, але однаково вплине на будь-який алгоритм навчання без нагляду на відстані (включаючи кластеризацію). Я також думаю, що відповідне рішення сильно залежатиме від того, що представляють бінарні ознаки, та від певного експертного судження про те, наскільки вони важливі. Тому я шукаю відповідь, яка б обговорювала різні можливі ситуації. Я впевнений, що тут немає рішення, яке підходить для всіх.
амеба

Відповіді:


8

Відмова: У мене є лише дотичні знання з цієї теми, але оскільки ніхто більше не відповів, я спробую

Відстань важлива

Будь-яка техніка зменшення розмірності, заснована на відстанях (tSNE, UMAP, MDS, PCoA та, можливо, інших), є такою ж хорошою, як і метрика відстані, яку ви використовуєте. Як правильно вказує @amoeba, не може бути рішення одного розміру-підходить, вам потрібно мати метрику відстані, яка фіксує те, що ви вважаєте важливим у даних, тобто ті рядки, які ви вважаєте б подібними, мають невелику відстань і рядки, які ви б вважають різні мають велику відстань.

Як ви вибираєте хороший показник відстані? По-перше, дозвольте мені зробити невелику диверсію:

Упорядкування

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

Важливим є те, що екологи мають дуже різноманітні набори даних та мають справу з сумішами двійкових, цілих та реальних цінностей (наприклад, наявність / відсутність видів, кількість спостережуваних зразків, pH, температура). Вони витратили багато часу на роздуми про відстані та перетворення для того, щоб ординації працювали добре. Я не дуже добре розумію поле, але, наприклад, огляд різноманітності Legendre та De Cáceres Beta як дисперсія даних спільноти: несхожість коефіцієнтів та розділення показує величезну кількість можливих відстаней, які ви можете перевірити.

Багатовимірне масштабування

Основним інструментом для ординації є багатовимірне масштабування (MDS), особливо неметричний варіант (NMDS), який я рекомендую вам спробувати додатково до t-SNE. Я не знаю про світ Python, але реалізація R у metaMDSфункції veganпакета робить для вас багато хитрощів (наприклад, виконуючи кілька запусків, поки не знайдуть два схожих).

Це було спірним, дивіться коментарі . Хороша частина MDS полягає в тому, що він також проектує функції (стовпці), тож ви можете бачити, які функції керують зменшенням розмірності. Це допомагає тобі інтерпретувати свої дані.

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

Розкочуючи власну відстань

Якщо ви розумієте структуру своїх даних, готові відстані та перетворення можуть бути не найкращими для вас, і ви, можливо, захочете побудувати власну метрику відстані. Хоча я не знаю, що представляють ваші дані, може бути доцільним обчислити відстань окремо для реально оцінених змінних (наприклад, використання евклідової відстані, якщо це має сенс), а також для бінарних змінних та додати їх. Загальні відстані для двійкових даних, наприклад, відстань Жакарда або відстань Косину . Можливо, вам доведеться подумати про якийсь мультиплікативний коефіцієнт для відстаней, оскільки в обох Жакарда та Косіна є значення[0,1] незалежно від кількості ознак, тоді як величина евклідової відстані відображає кількість ознак.

Слово обережності

Постійно слід пам’ятати, що оскільки у вас є стільки регуляторів, ви можете легко потрапити в пастку налаштування, поки не побачите те, що хотіли бачити. Цього важко уникнути при дослідницькому аналізі, але слід бути обережними.


1
+1. Тут багато хороших моментів, і мені подобаються посилання на старішу літературу про "висвячення". Одне, що привернуло мою увагу: "Приємна частина MDS - це те, що він також проектує функції (стовпці), тож ви можете бачити, які функції керують зменшенням розмірності" - ви впевнені в цьому? Наскільки я розумію, це неправда; принаймні, це не більше вірно для MDS, ніж для t-SNE.
амеба

@amoeba Ось звідки надходять мої обмежені знання :-) Все, що я знаю, - це те, що за замовчуванням використовується схема побудови metaMDSграфіків як зразків, так і функцій (див. наприклад, ця віньєтка: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Мартін Модрак

Дякуємо за ваші відповіді та розуміння. Зараз я більше зосереджуюсь на UMAP, і я думаю, що визначення певної міри подібності, наприклад, відстань Жакарда, можливо, вдалий спосіб поводження зі змішаними типами змінних. Я не використовував MDS, але знаю про це. Мені доведеться витратити трохи часу на розуміння, чи корисно це.
FChm

1
@ MartinModrák Я не знаю, що саме veganтам робить пакет, але MDS / NMDS - це нелінійний і непараметричний метод (саме як t-SNE), і немає "внутрішнього" способу, який би відповідав оригінальним характеристикам розмірам MDS. Я можу уявити, що вони обчислюють кореляції між оригінальними характеристиками та розмірами MDS; якщо так, це можна зробити для будь-якого вбудовування, включаючи t-SNE. Було б цікаво дізнатися, що саме veganробить.
амеба
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.