Чи існують алгоритми кластеризації, засновані на відстані?


14

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


2
Що саме ви мали би на увазі під "кластеризацією" без певного способу кількісної оцінки подібності чи "близькості" точок?
whuber

2
@ Відповідь Тіма нижче дуже хороша. Ви можете розглянути питання про повернення та / або прийняття , якщо воно допомогло вам; це приємний спосіб сказати «дякую». Розширюючи свою думку, існує латентний аналіз класів , який застосовує аналогічний підхід до категоричних даних. Непараметричний підхід до FMM можна використовувати через висоти багатоваріантної оцінки щільності ядра. Див. Кластеризацію за допомогою непараметричної оцінки щільності: Докладніше про пакет RdfCluster ( pdf ).
gung - Відновіть Моніку

Відповіді:


25

Одним із прикладів такого методу є моделі кінцевих сумішей (наприклад, тут чи тут ), що використовуються для кластеризації. У FMM ви розглядаєте розподіл ( ) змінної як суміш розподілів ( ):Х До й 1 , . . . , ф кfXKf1,...,fk

f(x,ϑ)=k=1Kπkfk(x,ϑk)

де - вектор параметрів а - пропорція '-го розподілу в суміші, а - параметр ( або параметри) розподілу .thetas ; = ( π ' , & thetas ; ' 1 , . . . , & Thetas ; ' до ) ' π до до & thetas ; до е доϑϑ=(π,ϑ1,...,ϑk)πkkϑkfk

Конкретним випадком дискретних даних є аналіз латентних класів (наприклад, тут ), визначений як:

P(x,k)=P(k)P(x|k)

де - ймовірність спостереження за латентним класом (тобто ), - ймовірність спостереження за значенням а - ймовірність того, що знаходиться в класі .k π k P ( x ) x P ( x | k ) x kP(k)kπkP(x)xP(x|k)xk

Зазвичай для оцінки використовується як алгоритм FMM, так і LCA EM , але можливий і байєсівський підхід, але трохи більш вимогливий через проблеми, такі як ідентифікація моделі та переключення міток (наприклад , блог Xi'an ).

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

Перевірте дві книги на FMM:

Одним з найбільш популярних пакетів кластеризації , який використовує ФММИ є mclust(перевірте тут або тут ) , що реалізуються в R . Однак можливі і більш складні FMM, перевірте, наприклад, flexmixпакет та його документацію . Для LCA існує пакет R poLCA .


Чи добре розумієте, якими можуть бути різні випадки використання?
shadowtalker

Як і в "коли я повинен використовувати це замість, скажімо, розділення навколо медоїдів?" Дуже приємна відповідь у будь-якому випадку
shadowtalker

1
@caveman зазначає, що це лише нотаційна конвенція. Це вектор векторів, ось і все.
Тім

1
@caveman є різних розподілів які знаходяться в суміші, кожен з яких має свої параметри (тому ми маємо вектори параметрів). F 1 , . . . , ф кk f1,...,fk
Тім

1
@caveman Найбільш типовим випадком є ​​те, що у вас є наприклад, звичайні розподіли, з різними засобами та sd's. Але вони можуть відрізнятися, див. Приклад 3.1 в cran.r-project.org/web/packages/flexmix/vignettes/…, який показує суміш двох різних моделей регресії. k
Тім

7

K-означає, що не "насправді" базується на відстані. Це мінімізує дисперсію . (Але дисперсія квадрат евклидова відстані, так що кожна точка буде призначений на найближчий центр ваги евклідовим відстанню, теж).

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

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

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

Кластеризація на основі щільності, як DBSCAN, має іншу назву і не зосереджена навколо мінімізації відстаней; але "щільність" зазвичай задається відносно відстані, тому технічно ці алгоритми або на відстані, або на сітці.

Важливою частиною вашого питання, яке ви залишили, є те, що ваші дані ?


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

Я думаю, що "на основі дистанції" він мав на увазі показники подібності, які включали б дисперсію.
en1

1
Чому дисперсія буде показником подібності? Це пов'язано з квадратом евклідової відстані; але не рівнозначна довільній відстані s .
Мав QUIT - Anonymous-Mousse

2

На додаток до попередніх приємних відповідей, я б запропонував розглянути моделі сумішей Діріхле та ієрархічні моделі процесів Діріхле на основі Баєса . Щоб отримати досить вичерпний та загальний огляд підходів та методів визначення оптимальної кількості кластерів , дивіться цю відмінну відповідь на StackOverflow : /programming//a/15376462/2872891 .


2

Суто дискримінаційний підхід - це "регуляризоване максимізація інформації" від Gomes та ін . Поняття подібності / відстані, що в ньому пов'язано, не існує.

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

λ

Розширення методів ядра або нейронних мереж для нелінійного кластеризації є простим.

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