Схоже, що для K-засобів та інших відповідних алгоритмів кластеризація базується на обчисленні відстані між точками. Чи є така, яка працює без неї?
Схоже, що для K-засобів та інших відповідних алгоритмів кластеризація базується на обчисленні відстані між точками. Чи є така, яка працює без неї?
Відповіді:
Одним із прикладів такого методу є моделі кінцевих сумішей (наприклад, тут чи тут ), що використовуються для кластеризації. У FMM ви розглядаєте розподіл ( ) змінної як суміш розподілів ( ):Х До й 1 , . . . , ф к
де - вектор параметрів а - пропорція '-го розподілу в суміші, а - параметр ( або параметри) розподілу .thetas ; = ( π ' , & thetas ; ' 1 , . . . , & Thetas ; ' до ) ' π до до & thetas ; до е до
Конкретним випадком дискретних даних є аналіз латентних класів (наприклад, тут ), визначений як:
де - ймовірність спостереження за латентним класом (тобто ), - ймовірність спостереження за значенням а - ймовірність того, що знаходиться в класі .k π k P ( x ) x P ( x | k ) x k
Зазвичай для оцінки використовується як алгоритм FMM, так і LCA EM , але можливий і байєсівський підхід, але трохи більш вимогливий через проблеми, такі як ідентифікація моделі та переключення міток (наприклад , блог Xi'an ).
Отже, немає вимірювання відстані, а скоріше статистичної моделі, що визначає структуру (розподіл) ваших даних. Через те інша назва цього методу - "кластеризація на основі моделі".
Перевірте дві книги на FMM:
Одним з найбільш популярних пакетів кластеризації , який використовує ФММИ є mclust
(перевірте тут або тут ) , що реалізуються в R . Однак можливі і більш складні FMM, перевірте, наприклад, flexmix
пакет та його документацію . Для LCA існує пакет R poLCA .
K-означає, що не "насправді" базується на відстані. Це мінімізує дисперсію . (Але дисперсія квадрат евклидова відстані, так що кожна точка буде призначений на найближчий центр ваги евклідовим відстанню, теж).
Існує безліч підходів кластеризації на основі сітки . Вони не обчислюють відстані, тому що це часто дасть квадратичне виконання. Натомість вони ділять дані та агрегують їх у комірки сітки. Але інтуїція, що стоїть за такими підходами, зазвичай дуже тісно пов’язана з дистанціями.
Існує ряд алгоритмів кластеризації для категоричних даних, таких як COOLCAT та STUCCO. З такими даними не можна легко використовувати відстані (однокольорове кодування - хак і не дає особливо значущих відстаней). Але я не чув, щоб хтось використовував ці алгоритми ...
Існують кластерні підходи до графіків. Але або вони зводяться до класичних задач графіків, таких як пошук кліків або майже-кліків та розфарбовування графіків, або вони тісно пов'язані з кластеризацією на основі відстані (якщо у вас зважений графік).
Кластеризація на основі щільності, як DBSCAN, має іншу назву і не зосереджена навколо мінімізації відстаней; але "щільність" зазвичай задається відносно відстані, тому технічно ці алгоритми або на відстані, або на сітці.
Важливою частиною вашого питання, яке ви залишили, є те, що ваші дані ?
На додаток до попередніх приємних відповідей, я б запропонував розглянути моделі сумішей Діріхле та ієрархічні моделі процесів Діріхле на основі Баєса . Щоб отримати досить вичерпний та загальний огляд підходів та методів визначення оптимальної кількості кластерів , дивіться цю відмінну відповідь на StackOverflow : /programming//a/15376462/2872891 .
Суто дискримінаційний підхід - це "регуляризоване максимізація інформації" від Gomes та ін . Поняття подібності / відстані, що в ньому пов'язано, не існує.
Ідея полягає у тому, щоб мати логістичну регресію на зразок моделі, яка ставить бали у бункери. Але замість того, щоб навчити його максимізувати певну форму вірогідності журналів міток класу, цільовою функцією є та, яка ставить точки в різні кластери.
Розширення методів ядра або нейронних мереж для нелінійного кластеризації є простим.