Clustering algorithms

Оновлено: 31.07.2023

Що таке кластеризація?

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

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

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

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

Як випливає з назви, контрольоване машинне навчання навчається на основі міток даних, які забезпечують контроль. Точки даних зіставляються з мітками в результаті навчання цих алгоритмів. З іншого боку, при неконтрольованому навчанні не вистачає сигналу, який дають мітки даних. З іншого боку, алгоритми навчання без нагляду використовують різні статистичні підходи для створення міток.

Класифікація алгоритмів кластеризації

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

  • на основі кількості кластерів, до яких може належати точка даних
  • на основі форм отриманих кластерів.
.

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

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

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

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

  • Кластеризація центроїдів- Основною метою кластеризації центроїдів є знаходження центроїдів набору даних. Центри кластерів є центроїдами, тоді як самі кластери формуються шляхом віднесення кожної точки даних до найближчого до неї центроїда. На відміну від інших підходів до кластеризації, які автоматично визначають ідеальну кількість кластерів, алгоритми на основі центроїдів потребують від аналітика вибору цієї кількості заздалегідь. Тому дуже важливо мати уявлення про кластери, які можуть існувати у ваших даних, перш ніж використовувати цей метод.
  • Кластеризація на основі щільності- Кластеризація на основі щільності аналізує тільки місця з високою концентрацією точок даних, тоді як попередні два методи використовують всі точки даних при побудові кластера. Викиди - це точки даних, які виходять за межі визначеного вручну радіусу і видаляються з дослідження.
  • Кластеризація за ієрархією- Кластерна рейтингова система будується за допомогою ієрархічної кластеризації. Цей метод кластеризації виявляє первинні, окремі кластери, а також підкластери, або кластери, які знаходяться всередині більших кластерів. Якщо ви хочете знайти приховані підструктури у ваших даних, ієрархічна кластеризація є більш корисною, ніж центроїдні підходи.
.

Висновок

Кластеризація, як і багато чого в науці про дані, ґрунтується на методі проб і помилок.

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

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

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

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

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