Чому алгоритм кластеризації k-означає використовує тільки евклідову метрику відстані?


62

Чи є конкретна мета з точки зору ефективності чи функціональності, чому алгоритм k-засобів не використовує, наприклад, подібність косинуса (dis) як метрику відстані, а може використовувати лише евклідову норму? Загалом, чи відповідає метод К-засобів та чи буде правильним, якщо розглядаються чи використовуються інші відстані, ніж Евклідова?

[Доповнення від @ttnphns. Питання двозначне. "(Не) евклідова відстань" може стосуватися відстані між двома точками даних або відстані між точкою даних та центром кластера. До цих пір у відповідях намагалися вирішити обидва способи.]


Це питання вже було задано близько 10 разів на сайті stackoverflow та на цьому веб-сайті. Будь ласка, використовуйте функцію пошуку.
Аноні-Мус

3
@ Anonymous-Mousse: Хоча я цілком погоджуюся з вами і підняв купу прапорів недавно на SO, я вважаю відсутність дублікату закриття більшості цих питань тривожним.
Nikana Reklawyks

4
Це сторінка, яка займає перше місце під час гуглати з цієї теми.
haripkannan

Відповіді:


62

Процедура K-Means, яка є методом векторного квантування, який часто застосовується як метод кластеризації, взагалі не використовує явно дані про попарне відстань в / з точок даних (на відміну від ієрархічних та деяких інших кластеризацій, які дозволяють проводити довільну міру близькості). Він становить багаторазове присвоєння балів найближчому центроїду, використовуючи тим самим евклідову відстань від точок даних до центроїда . Однак K-засоби неявно засновані на попарних евклідових відстанях b / w точок даних, оскільки сума квадратичних відхилень від центроїда дорівнює сумі парних квадратних евклідових відстаней, поділених на кількість точок. Термін "центроїд" сам по собі з евклідової геометрії. Це багатофакторне середнє значення в евклідовому просторі. Простір Евкліда - це приблизно евклідові відстані. Неевклідові відстані, як правило, не охоплюють евклідовий простір. Ось чому K-Means призначений лише для евклідових відстаней.

Але евклідова відстань в / з двох точок даних може бути представлена ​​кількома альтернативними способами . Наприклад, він тісно пов'язаний з косинусом або скалярним твором в / б точок. Якщо у вас є косинус, або коваріація, або кореляція, ви завжди можете (1) перетворити його на (квадрат) евклідової відстані, а потім (2) створити дані для цієї матриці евклідових відстаней (за допомогою головних координат або інших форм метрики Багатовимірне масштабування) до (3) вводить ці дані в кластеризацію K-засобів. Тому можна змусити K-засоби працювати з парними косинусами або такими; насправді такі реалізації кластеризації K-Means існують. Дивитися також про реалізацію "К-засобів для дистанційної матриці".

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

Зверніть увагу, я обговорював тему, чи сумісність евклідової чи ненуклідової різниці між точками даних сумісна з K-засобами. Це пов'язано з, але не зовсім тим самим питанням, як можливе включення ненуклеїдових відхилень від центроїда (у широкому сенсі, центрального або квазіцентроїдного) в K-засоби або модифіковані "K-засоби".

Дивіться відповідне питання K-засоби: Чому мінімізація WCSS - це максимізація відстані між кластерами? .


Чи можете ви навести кілька прикладів-документів підходу, який ви згадуєте?
цікаво

4
@Douglas, будь ласка. Я сказав, що k-засоби не використовують парні відстані. Це чітко зазначено. Він використовує відстані до центру. Але це автоматично означає, що це неявно пов'язане із завданням оптимізувати попарні відстані в кластерах.
ttnphns

1
@ttnphns: У кількості написаних But a Euclidean distance b/w two data points can be represented in a number of alternative ways. For example, it is closely tied with cosine or scalar product b/w the points. If you have cosine, or covariance, or correlation, you can always (1) transform it to (squared) Euclidean distanceвами символів ви могли б так само легко писати: distance(x,y) = 1 - cosine_sim(x,y)або щось подібне дотепне та інформативне.
stackoverflowuser2010

1
Це виглядає як обгрунтована та конструктивна критика: краще включати інформацію безпосередньо у свій пост, а не покладатися на посилання; і зазвичай краще бути явним, ніж розпливчастим. (cc @stackoverflowuser)
whuber

3
Що ти сперечаєшся? Що в цьому випадку краще покластися на посилання, або краще бути розпливчастим, або обом? І чому?
whuber

46

Дивіться також відповідь @ttnphns для інтерпретації k-засобів, що насправді передбачає точкові евклідові відстані.

Спосіб побудови k-засобів не заснований на відстані .

K-означає мінімізує дисперсію всередині кластера. Тепер, якщо подивитися на визначення дисперсії, воно ідентичне сумі квадратних відстаней Евкліда від центру. (@ttnphns відповідь посилається на попарно евклідові відстані!)

Основна ідея k-засобів - мінімізувати помилки у квадраті . Тут немає жодної "відстані".

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

Якщо ви шукаєте варіант k-засобів на Манхеттені, то k-медіани є. Тому що медіана - відомий найкращий оцінювач L1.

Якщо ви хочете довільних дистанційних функцій, погляньте на k-медоїди (він же: PAM, розділення медоїдів). Медоїд мінімізує довільні відстані (оскільки він визначений як мінімальний), і існує лише кінцева кількість можливих медоїдів. Це набагато дорожче, ніж середнє значення.


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

@AnonymousMousse @ttnphns answer refers to pairwise Euclidean distances!У своїй відповіді, 1-й абзац, я чітко посилаюся як на "помилку SS" (пряму), так і на "попарно d ^ 2" (неявні) інтерпретації.
ttnphns

3
Я згоден з вами у відповідь. Зауважте, що ваш операційний рахунок k-means may stop converging with other distance functionsє гомологічним моєму теоретичному Non-euclidean distances will generally not span euclidean space.
ttnphns

дуже хороше пояснення. Я ніколи не замислювався над евклідовою дистанцією і не усвідомлював, що це насправді мінімізація сукупності кластерної суми квадратів.
Верена Хауншмід

Я досі не можу зрозуміти, чому середнє значення мінімізує відстані з точки зору евклідових відстаней, а з точки зору косинусу, це не є частиною доказу
цікаво

9

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

Алгоритм K-засобів був запропонований незалежно від декількох полів із сильними інтерпретаціями, застосовними до цього поля. Просто гарно виявляється, що це також евклідова відстань до центру. Для короткої історії K-засобів, будь ласка, прочитайте Кластеризація даних: 50 років перевищує K-засоби

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


"інші показники, ніж Евклідова", я можу бути трохи більш педантичним, але ці розбіжності взагалі не є метриками :)
mic

правда :); я, мабуть, повинен відредагувати відповідь.
користувач1669710

8

Оскільки це, мабуть, зараз канонічне питання, і тут ще не згадувалося:

Rгφ:RpНгг(х,у)=φ(х)-φ(у)Н{φ(хi)}φк(х,у)=φ(х),φ(у)Н

У цій ситуації в стандартному алгоритмі k-означає (Ллойда) ми можемо легко присвоїти точки їх кластерам, але ми представляємо центри кластерів неявно (як лінійні комбінації точок введення в просторі Гільберта). Пошук найкращого представлення у вхідному просторі потребує знаходження середнього фрешету , що є досить дорогим. Тому легко отримати завдання кластеру з ядром, важче отримати засоби.

У наступному документі розглядається цей алгоритм і стосується його спектральної кластеризації:

І. Діллон, Ю. Гуан та Б. Куліс. Ядро k-означає, Спектральне кластеризація та Нормалізовані надрізи. KDD 2005.


Я не розумію, як хитрість ядра може використовуватися з алгоритмом Ллойда. Мені здається, що для обчислення центроїда (навіть неявно в просторі Гільберта) нам знадобиться явна карта φ (x_i)? Для присвоєння точок кластерам нам потрібне лише ядро, але для перерахунку центроїдів ми не можемо відійти лише від ядра, оскільки центроїд - це середнє значення {φ (x_i)}, призначеного цьому кластеру. Я щось пропускаю?
user2428107

1нijСiφ(хj)хφ(х)-1нijСiφ(хj)2=к(х,х)+1нi2j,j'к(хj,хj')-2нijк(х,хj)

5

Я прочитав тут багато цікавих коментарів, але дозвольте додати, що "особиста" реалізація Матлаба k-засобів підтримує 4 неевклідові відстані [між точками даних та центрами кластерів]. Єдиний коментар із документації, про яку я бачу, це:

Міра відстані в p-мірному просторі, що використовується для мінімізації, зазначена як пара, розділена комами, що складається з "Відстань" і рядка.

kmeans обчислює центральні кластери по-різному для різних підтримуваних заходів дистанції. Ця таблиця підсумовує доступні заходи дистанції. У формулах х - спостереження (тобто рядок X), а c - центроїд (векторний рядок).

Потім перелік функцій cта xнаступний. Таким чином, враховуючи, що pце розмірність вхідних даних, здається, що заздалегідь не виконується жодне евклідове вбудовування.

BTW в минулому я використовував k-засоби Matlab з кореляційною дистанцією, і він (не дивно) робив те, що повинен був робити.


2
cosinecorrelationcityblockL1hammingcityblock

@Dougal, як медіана розміщена в алгоритмі? Чи не змінюється k - означає принципово інший альго?
ttnphns

1
Зауважте також, що для двійкових даних "відстань забивання" = cityblock = квадратна евклідова відстань.
ttnphns

1
=L22=L1

1
@Dougal, зауважте, що процедура matlab пов'язана з різними відстанями між точкою даних та центром кластера; що не те саме, що види парних відстаней.
ttnphns

2

Від сюди :

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

Розглянемо два документи A і B, представлені векторами на наведеному малюнку. Косинус розглядає обидва вектора як одиничні вектори, нормалізуючи їх, даючи міру кута між двома векторами. Це забезпечує точну міру подібності, але не враховуючи масштабів. Але величина є важливим фактором при розгляді подібності.


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

3
@DLDahly: Інколи важлива величина, іноді це шум. Це залежить від галузі дослідження і є проблемою стандартизації даних.
ttnphns
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.