Кластеризація на основі балів подібності


18

Припустимо, що ми маємо набір елементів E і подібність ( не відстань ) функції sim (ei, ej) між двома елементами ei, ej ∈ E .

Як ми могли (ефективно) кластеризувати елементи E , використовуючи sim ?

k- значить, наприклад, вимагає заданого k , для кластеризації Canopy потрібно два порогових значення. Що робити, якщо ми не хочемо таких заздалегідь заданих параметрів?

Зауважимо, що сим не обов'язково є метрикою (тобто нерівність трикутника може бути, а може і не дотримуватися). Більше того, не має значення, чи кластери роз'єднані (розділи E ).


2
Цікаво , чому ви підкреслили , що ви НЕ маєте відстань. Я тут не фахівець, але задаюся питанням, чи не повинно бути можливо перетворити таку подібність на відстань, якщо потрібно, в основному, враховуючи її зворотну. Незалежно від цього, я сумніваюся, що існують алгоритми кластеризації, які повністю не містять параметрів, тому деяка настройка, швидше за все, буде потрібна у всіх випадках. Якщо ви розглядали k-Means, чи можна припустити, що у вас є реально оцінені властивості (зокрема, ви можете прийняти "середнє" з декількох елементів)?
Marco13

4
Вам не потрібно знати k, щоб виконувати k засоби. Ви можете кластеризувати з різними k і перевірити дисперсію кластера, щоб знайти оптимальний. Крім того, ви можете подумати про те, щоб скористатися моделями суміші Гаусса або іншим процесом відновлення, наприклад, для того, щоб допомогти вам згуртуватися.
cwharland

2
Я задав питання з конкретної причини: Якщо ви могли застосувати k-Means, але єдиною проблемою було пошук початкового "k", то ви можете розглянути en.wikipedia.org/wiki/Self-organizing_map як альтернативу. Він має деякі приємні властивості і в основному поводиться «схоже» на k-Means, але не вимагає встановлення початкового «k». Це, мабуть, не випускне рішення, оскільки воно має додаткові параметри настройки (і навчання може бути обчислювально дорогим), але все-таки варто переглянути.
Marco13

2
Початковий вибір k впливає на результати кластеризації, але ви можете визначити функцію втрати або, швидше за все, функцію точності, яка повідомляє вам про кожне значення k, яке ви використовуєте для кластера, відносну схожість усіх суб'єктів у цьому кластері. Ви вибираєте k, що мінімізує розбіжність у подібності. GMM та інші процеси диріхлету досить добре піклуються про невідому проблему. Один з найкращих ресурсів, які я бачив на цьому, - це підручник Едвіна Чена .
cwharland

4
Лише думка: Якщо ваш показник подібності нормалізується на 1 , ніж 1-sim(ei, ej) = Distance. За допомогою метрики відстані ви можете застосувати, наприклад, ієрархічну кластеризацію. Зійшовши з кореня, ви побачите, на якому рівні кластери зернистості мали б сенс для вашої конкретної проблеми.
Олександр Ісаєв

Відповіді:


9
  1. Я думаю, що ряд алгоритмів кластеризації, які зазвичай використовують метрику, насправді не покладаються на метричні властивості (крім коммутативності, але я думаю, у вас це буде тут). Наприклад, DBSCAN використовує околиці epsilon навколо точки; там немає нічого, що конкретно говорить про нерівність трикутника має значення. Таким чином, ви, ймовірно, можете використовувати DBSCAN, хоча вам, можливо, доведеться зробити якийсь нестандартний просторовий індекс, щоб зробити ефективні пошуки у вашому випадку. Ваша версія epsilon-сусід, швидше за все, буде sim> 1 / epsilon, а не навпаки. Та сама історія з k-засобами та пов'язаними з ними алгоритмами.

  2. Чи можете ви побудувати метрику зі своєї подібності? Одна можливість: dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) для всіх k ... По черзі, чи можете ви надати верхню межу, таку, що sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, для всіх k і деякої позитивної постійної d? Інтуїтивно, великі значення sim означає ближче один до одного: 1 / sim метрично схоже? А як щодо 1 / (сим + константа)? Як щодо min (1 / sim (ei, ek) + 1 / sim (ek, ej)) для всіх k? (останній гарантовано буде показником, btw)

  3. Альтернативна побудова метрики - це зробити вбудовування. В якості першого кроку ви можете спробувати зіставити свої точки ei -> xi, так що xi мінімізує суму (abs (sim (ei, ej) - f (dist (xi, xj))), для деякої відповідної функції f та метрики dist. Функція f перетворює відстань у вбудовуванні на подібне значення; вам доведеться трохи експериментувати, але 1 / dist або exp ^ -dist є хорошими відправними точками. Вам також доведеться експериментувати на найкращих розмір для xi. Звідти ви можете використовувати звичайні кластеризації на xi. Ідея тут полягає в тому, що ви можете майже (в найкращому сенсі) перетворити відстані в вбудовуванні на значення подібності, щоб вони кластеризувались правильно.

  4. Щодо використання заздалегідь заданих параметрів, всі алгоритми мають певну настройку. DBSCAN може знайти кількість кластерів, але все ж потрібно надати йому деякі параметри. Загалом, для налаштування потрібні кілька запусків алгоритму з різними значеннями для настроюваних параметрів, а також деяка функція, яка оцінює доброту кластеризації (або обчислюється окремо, надається самим алгоритмом кластеризації, або просто підводить очей :) Якщо характер ваші дані не змінюються, ви можете налаштувати один раз, а потім використовувати ці фіксовані параметри; якщо вона зміниться, то вам доведеться налаштовуватися на кожен пробіг. Це можна дізнатись, налаштувавши для кожного запуску, а потім порівнявши, наскільки добре працюють параметри одного запуску на інший, порівняно з параметрами, спеціально налаштованими для цього.


8

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

Особисто мої алгоритми переходу до кластеризації - це OpenOrd для кластеризації, який приймає все, і FLAME для нечіткої кластеризації. Обидва методи байдужі до того, чи використовуються показники подібність чи відстань (зокрема, FLAME майже однакові в обох конструкціях). Реалізація OpenOrd в Gephi єO(nlogn) і, як відомо, більш масштабованою, ніж будь-який з інших алгоритмів кластеризації, присутніх у пакеті Gephi.

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


5

DBSCAN (див. Також: Узагальнена DBSCAN) не вимагає відстані. Все, що потрібно, - це бінарне рішення . Зазвичай можна використовувати "відстань <epsilon", але нічого не говорить про те, що ви не можете використовувати "подібність> epsilon". Нерівність трикутника тощо не потрібно.

Поширення афінності, як видно з назви, використовує схожість.

Ієрархічна кластеризація, за винятком, можливо, зв'язку Уорда, не передбачає жодних припущень. У багатьох реалізаціях ви можете просто використовувати негативні відстані, коли у вас є подібності, і це буде добре. Тому що все, що потрібно - це min, max та <.

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

PAM (K-медоїди) повинен працювати. Призначте кожен об’єкт до найбільш схожої медоїди, а потім виберіть об'єкт із найбільшою середньою схожістю як новий медоїд ... нерівності трикутника не потрібні.

... і, мабуть, ще багато інших. Існує буквально сотні алгоритмів кластеризації. Більшість мусить працювати ІМХО. Дуже мало кому здається, що насправді потрібні метричні властивості. K-засоби, мабуть, мають найвищі вимоги: він мінімізує розбіжність (не відстань чи подібність), і ви повинні вміти обчислювати засоби.


4

Топологічний аналіз даних - це метод, явно розроблений для описаних вами параметрів. Замість глобальної метрики відстані вона покладається лише на локальну метрику близькості чи сусідства. Див.: Топологія та дані та Вилучення уявлень із форми складних даних за допомогою топології . Ви можете знайти додаткові ресурси на веб-сайті Ayasdi.

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