Як я можу знати, що мій алгоритм кластеризації k-означає страждає від прокляття розмірності?


12

Я вважаю, що назва цього питання все говорить.


3
Я думаю, вам доведеться уточнити для нас, що ви маєте на увазі під симптомом.
mdewey

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

@generic_user, якби цей коментар був відповіддю, я вважав би це прийнятою відповіддю :)
mathieu

1
Це питання є досить зрозумілим, щоб залишатися відкритим, ІМО.
gung - Відновіть Моніку

1
Досить часто ви стикаєтеся з набагато більш серйозними проблемами k-засобів раніше, ніж "прокляття розмірності". k-засоби можуть працювати на 128 розмірних даних (наприклад, кольорові вектори SIFT), якщо атрибути є добродушними. Певною мірою це може навіть іноді працювати над 10000-мірними текстовими даними. Теоретична модель прокляття ніколи не справляється з реальними даними. Більші проблеми - це незрівнянні риси, розрідженість та неможливість візуалізації та подвійної перевірки результату.
Мав QUIT - Anonymous-Mousse

Відповіді:


18

Це допомагає подумати про те, що таке Прокляття розмірності . У резюме є кілька дуже хороших тем, які варто прочитати. Ось з чого почати: Поясніть дитині «Прокляття розмірності» .

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

Коротка відповідь цих ниток полягає в тому, що об'єм (розмір) простору збільшується з неймовірною швидкістю відносно кількості розмірів. Навіть вимірів (які, здається, не дуже «великі» для мене) можуть викликати прокляття. Якщо ваші дані були розподілені рівномірно по всьому цьому простору, всі об'єкти стають приблизно на однаковій відстані один від одного. Однак, як зазначає @ Аноні-Мусс у своїй відповіді на це запитання, це явище залежить від того, яким чином масив даних проходить у просторі; якщо вони не є рівномірними, у вас не обов'язково виникає ця проблема. Це призводить до питання про те, чи є рівномірно розподілені високовимірні дані взагалі дуже поширені (див.: Чи дійсно існує "прокляття розмірності" в реальних даних? ). 10

Я заперечую, що важливим є не обов’язково кількість змінних (буквальна розмірність ваших даних), а ефективна розмірність ваших даних. Згідно з припущенням, що розмірів є "занадто високими" для значень, найпростішою стратегією було б підрахувати кількість наявних у вас функцій. Але якщо ви хотіли подумати з точки зору ефективної розмірності, ви могли б провести аналіз принципових компонентів (PCA) і подивитися, як випадають власні значення. Досить часто зустрічається той факт, що більшість варіантів існує в декількох вимірах (які, як правило, вирізають початкові розміри вашого набору даних). Це означає, що ви рідше матимете проблему з в тому сенсі, що ваша ефективна розмірність насправді набагато менша. 10кк

Більш задіяним підходом було б вивчити розподіл парних відстаней у вашому наборі даних по лініях, які @ hxd1011 пропонує у своїй відповіді . Перегляд простих граничних розподілів дасть вам деякий натяк на можливу рівномірність. Якщо ви нормалізуєте, щоб усі змінні лежали в інтервалі , попарні відстані повинні лежати в межах інтервалу . Сильно сконцентровані відстані спричинять проблеми; з іншого боку, мультимодальний розподіл може сподіватися (ви можете побачити приклад моєї відповіді тут: Як використовувати як бінарні, так і безперервні змінні разом у кластеризації? ).[0, 1][0, D]

Однак, чи працюватимуть як і раніше, складне питання. За припущенням, що у ваших даних є значимі латентні угруповання, вони необов’язково існують у всіх ваших вимірах або в побудованих розмірах, які максимально змінюють (тобто принципові компоненти). Кластери можуть бути розмірами з меншими варіаціями (див. Приклади PCA, де ПК з низькою дисперсією є «корисними» ). Тобто, у вас можуть бути кластери з точками, близькими і добре розділеними між лише кількома вашими розмірами або на ПК з меншою варіацією, але вони не є віддаленими схожими на ПК з великою варіацією, що спричинить -міні ігнорувати кластери, які ви шукаєте, і вибирати замість них штучні кластери (деякі приклади можна побачити тут:ккЯк зрозуміти недоліки К-засобів ).


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

+1 за відмінну відповідь. Чи можете ви, будь ласка, детальніше розглянути детальнішу частину власних значень? Якщо ефективна розмірність невелика, то чи рекомендуєте ви робити PCA і зберігати лише перші кілька балів з високими власними значеннями?
DataD'oh

@ DataD'oh, це, безумовно, одна з можливостей, але те, що я кажу, що вам цього не потрібно робити. Насправді дані не є великими розмірами (коли лише перші кілька власних векторів мають високі власні значення), тому вам не обов’язково нічого робити - прокляття розмірності просто не застосовуватиметься.
gung - Відновіть Моніку

@gung Я розмістив нове запитання . Сподіваюся, це не надто банально.
DataD'oh

7

Моя відповідь не обмежується значенням K, але перевірити, чи є у нас прокляття розмірності для будь-яких методів на відстані. K-засоби засновані на вимірюванні відстані (наприклад, евклідова відстань)

Перш ніж запустити алгоритм, ми можемо перевірити розподіл метрики відстані, тобто всі показники відстані для всіх пар даних. Якщо у вас єN Точки даних, які ви повинні мати 0,5N(N-1)показники відстані. Якщо дані занадто великі, ми можемо перевірити зразок цього.

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


Ось кілька моделювання, щоб показати вам такі контр-інтуїтивні результати. Якщо всі функції розподілені рівномірно і якщо їх занадто багато розмірів, кожна метрика відстані повинна бути близькою до16, що походить від хi=01хj=01(хi-хj)2гхiгхj. Не соромтеся змінювати рівномірний розподіл на інші. Наприклад, якщо ми змінимо до нормального розподілу (зміна runifдо rnorm), вона буде сходитися до іншого номеру з великими розмірами чисел.

Ось моделювання розміром від 1 до 500, особливості рівномірного розподілу від 0 до 1.

plot(0, type="n",xlim=c(0,0.5),ylim=c(0,50))
abline(v=1/6,lty=2,col=2)
grid()

n_data=1e3
for (p in c(1:5,10,15,20,25,50,100,250,500)){
    x=matrix(runif(n_data*p),ncol=p)
    all_dist=as.vector(dist(x))^2/p
    lines(density(all_dist))
}

введіть тут опис зображення


1
Що П?
амеба

1
Я відмовився через демонстрацію явища евклідової усадки у великих розмірах. Але відповідь не демонструє страждання к-засобів, що збиваються з прокляття. Страждання означають, що у великих розмірах досить добре відокремлені кластери (а не однакові випадкові дані, як у вас) можуть бути не розкриті настільки ж успішно, як у низьких розмірах. Ви не торкалися цієї теми.
ttnphns

@amoeba П- кількість розмірів. Я перегляну сюжет і додам код. Дякую.
Хайтао Дю

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