K-засоби - це не алгоритм кластеризації, заснований на відстані .
K-означає пошук мінімальної суми присвоєння квадратів , тобто мінімізує ненормалізовану дисперсію (= total_SS
) шляхом присвоєння точок центрам кластерів.
Для того, щоб k-засоби збіглися, вам потрібно дві умови:
- переназначення точок зменшує суму квадратів
- перерахунок середнього значення зменшує суму квадратів
Оскільки існує лише обмежене число комбінацій, ви не можете нескінченно зменшити це значення, і алгоритм повинен у певний момент сходитися до локального оптимуму.
Щоразу, коли ви маєте намір змінити функції призначення, ви ризикуєте зробити алгоритм більше не припиненим, як собака переслідує власний хвіст. По суті, обидва кроки повинні погоджуватися щодо цільової функції. Ми знаємо, що середнє арифметичне є оптимальним вибором відносно суми квадратів . І для першого кроку ми можемо просто обчислити для кожного середнього та вибрати те, що є мінімальним. Технічно тут немає розрахунку на відстані . Математично присвоєння найменшої суми квадратів дорівнює присвоєнню замиканням у квадраті евклідової відстані, яка (якщо ви витрачаєте цикли процесора на обчислення ) дорівнює мінімальній евклідовій відстані. Отже, інтуїція∑i( хi- мкj i)2 jsqrt
присвоєння кожної точки найближчому середньому є правильним, але не те, що робить проблема оптимізації.
between_SS
ймовірно, це зважена сума квадратів між двома засобами для вимірювання того, наскільки добре розділені центри кластерів (зауважте: центри кластерів, вони не порівнюють фактичні кластери - технічно кластерна клітина Вороного торкається сусідніх кластерів клітини Вороного).
Зауважте, що за допомогою k-засобів ви можете покращити якість наївної кластеризації шляхом збільшення k. Якість, виміряна тут, є математичним значенням, яке може не відповідати вимогам користувачів. Ірис насправді є досить хорошим прикладом, коли k-засоби часто сходяться до менш ніж задовільних результатів, навіть з огляду на зовнішню інформацію про те, що має бути рівно 3 кластери.
Якщо ви хочете на основі відстані варіації k-засобів , подивіться k-медоїди . Тут конвергенція забезпечується шляхом заміни середнього на медоїд:
- Кожен об'єкт присвоюється найближчому кластеру (довільною мірою відстані)
- Центр кластера оновлюється до самого центрального об'єкта кластеру, тобто з найменшою середньою відстані до всіх інших.
На кожному кроці сума відстаней зменшується; існує кінцева кількість комбінацій, тому алгоритм повинен припинятися на деякому локальному мінімумі.