🌌 DBSCAN — кластеризація за густиною
DBSCAN вирощує кластери з густих ядрових точок через ε-околи та minPts, позначаючи розріджені точки як шум. На відміну від k-середніх, він знаходить довільні форми й не потребує числа кластерів.
Про DBSCAN — кластеризацію за густиною
DBSCAN (Density-Based Spatial Clustering of Applications with Noise — просторова кластеризація за густиною із шумом) — це алгоритм машинного навчання, який групує точки даних у кластери на основі локальної густини. Він класифікує кожну точку як ядрову (з не менш ніж minPts сусідами в межах радіуса epsilon), граничну (поблизу ядрової точки, але недостатньо густу саму по собі) або шум (ізольований викид). На відміну від методів на основі центроїдів, DBSCAN вирощує кластери, розширюючись через ланцюжки густих околів, виявляючи групи будь-якої форми без потреби заздалегідь вказувати кількість кластерів.
DBSCAN був представлений у 1996 році і відтоді став основоположним алгоритмом у просторовому аналізі даних, виявленні аномалій, геопросторовій кластеризації та сегментації зображень. Він особливо корисний для реальних наборів даних, у яких кластери мають неправильну форму, а викиди потрібно явно виявляти.
Поширені запитання
Що означає абревіатура DBSCAN і як він працює?
DBSCAN розшифровується як Density-Based Spatial Clustering of Applications with Noise (просторова кластеризація за густиною із шумом). Алгоритм сканує кожну точку даних і підраховує, скільки інших точок лежить у межах заданого користувачем радіуса epsilon (epsilon-околу). Якщо ця кількість досягає порогу, який називається minPts, точку позначають як ядрову і з неї вирощують кластер, рекурсивно додаючи всі досяжні сусідні точки. Точки, досяжні з ядрової точки, але недостатньо густі самі по собі, стають граничними, а ізольовані точки, що не належать жодному кластеру, позначаються як шум.
Як користуватися елементами керування симуляції?
Оберіть пресет хмари точок (Місяці, Кільця або Плями) за допомогою кнопок угорі, потім налаштуйте повзунок Epsilon, щоб задати радіус околу, та повзунок minPts, щоб задати поріг густини. Натисніть Запустити, щоб анімувати кластеризацію крок за кроком, або Крок, щоб просуватися по одному мікрокроку. Також можна клацнути будь-де на полотні, щоб додати власні точки даних. Панель статистики в реальному часі показує поточну кількість кластерів, точок шуму та стан алгоритму.
Що відбувається при зміні значень epsilon або minPts?
Збільшення epsilon розширює радіус околу, через що більше точок враховуються як сусідні; занадто велике значення об'єднує всі точки в один кластер. Зменшення epsilon звужує радіус, через що більше точок позначаються як шум. Збільшення minPts підвищує вимогу до густини для ядрової точки, даючи менше, щільніших кластерів з більшою кількістю шуму; зменшення дозволяє формувати кластери навіть у розріджених ділянках. Оптимальне поєднання цих двох параметрів визначає якість і деталізацію результату кластеризації.
Яке математичне визначення густинної досяжності?
Точка q безпосередньо густинно-досяжна з точки p (за заданих epsilon та minPts), якщо q лежить у epsilon-околі p, а p є ядровою точкою. Точка q густинно-досяжна з p, якщо існує ланцюжок точок p1, p2, ..., pn, де p1 = p, pn = q, і кожна pi+1 безпосередньо густинно-досяжна з pi. Дві точки густинно-зв'язані, якщо існує точка o, з якої обидві досяжні за густиною. Кластер визначається як максимальна множина взаємно густинно-зв'язаних точок. Точки шуму — це ті, які не є густинно-досяжними з жодної ядрової точки.
Де DBSCAN застосовується в реальному світі?
DBSCAN широко використовується в геопросторовому аналізі для пошуку кластерів GPS-координат, як-от осередків заторів, місць злочинів або епіцентрів землетрусів. Його застосовують в астрономії для групування зірок і галактик в оглядових даних, у біології — для кластеризації клітин у проточній цитометрії, в електронній комерції — для виявлення незвичних патернів купівлі як аномалій, і в комп'ютерному зорі — для групування пікселів під час сегментації зображень. Здатність ігнорувати викиди як шум робить його особливо цінним для зашумлених даних із давачів IoT-пристроїв та автономних транспортних засобів.
Яке поширене хибне уявлення про DBSCAN порівняно з k-середніми?
Поширене хибне уявлення полягає в тому, що DBSCAN — це просто гнучкіша версія k-середніх, яка завжди дає кращі результати. Насправді DBSCAN погано працює з наборами даних, де кластери мають дуже різну густину, оскільки єдине глобальне значення epsilon не може одночасно охопити й щільний густий кластер, і розріджений розлогий кластер. K-середні, попри необхідність заздалегідь вказувати кількість кластерів, можуть перевершувати DBSCAN на добре розділених сферичних плямах подібного розміру. Ці два алгоритми радше доповнюють один одного, ніж один із них є універсально кращим.
Хто створив DBSCAN і коли він був опублікований?
DBSCAN був представлений у 1996 році Мартіном Естером, Хансом-Петером Крігелем, Йоргом Сандером та Сяовеєм Су на Другій міжнародній конференції з видобутку знань і даних (KDD-1996). Оригінальна стаття під назвою «A density-based algorithm for discovering clusters in large spatial databases with noise» стала однією з найцитованіших публікацій у сфері видобутку даних. У 2014 році автори отримали нагороду SIGKDD Test of Time Award, що визнала тривалий вплив алгоритму майже через два десятиліття після публікації.
Які інші алгоритми кластеризації споріднені з DBSCAN?
OPTICS (Ordering Points To Identify the Clustering Structure) — це пряме розширення DBSCAN, яке долає обмеження щодо різної густини, будуючи графік досяжності замість фіксованого розбиття. HDBSCAN (ієрархічний DBSCAN) будує ієрархію кластерів на кількох рівнях густини та обирає найстабільніші з них, що робить його стійкішим на реальних даних. Кластеризація методом зсуву середнього (mean-shift) — це ще один метод на основі густини, який знаходить центри кластерів, ітеративно зсуваючи точки в напрямку ділянок вищої густини. Поширення спорідненості (affinity propagation) та спектральна кластеризація мають подібні ідеї щодо зв'язності, але діють за іншими математичними принципами.
Як DBSCAN застосовується в інженерії та технологіях?
У безпілотному водінні DBSCAN застосовують для кластеризації тривимірних хмар точок з давачів LiDAR, групуючи відбиття, що належать одному фізичному об'єкту, наприклад пішоходу чи іншому транспортному засобу. У мережевій безпеці він виявляє активність ботнетів, кластеризуючи IP-адреси зі схожими патернами трафіку та позначаючи ізольовані адреси як потенційні аномалії. У виробництві він виявляє кластери бракованої продукції в потоках даних давачів на виробничих лініях. Хмарні платформи, як-от AWS та Google Cloud, включають DBSCAN у свої керовані сервіси машинного навчання для широкомасштабної просторової аналітики.
Які актуальні напрямки досліджень навколо DBSCAN?
Активні напрямки досліджень включають масштабовані варіанти DBSCAN для розподілених та потокових даних, такі як PDBSCAN (паралельний DBSCAN на MapReduce/Spark), та наближення на основі STING, що знижують вузьке місце складності O(n^2). Дослідники також вивчають адаптивні методи вибору параметрів, які автоматично оцінюють epsilon за розподілом даних, використовуючи графіки відстані до k найближчих сусідів або сурогатні моделі машинного навчання. Глибока кластеризація поєднує DBSCAN з ембедингами нейронних мереж, так що сама метрика відстані навчається, роблячи алгоритм ефективним для зображень, тексту та графових даних, де евклідова відстань не має сенсу.