DBSCAN (англ. density-based spatial clustering of applications with noise) — алгоритм кластеризації даних, який запропонували Мартін Естер (англ. Martin Ester), [en], Йорґ Сандер (англ. Jörg Sander) та Сяовей Су (англ. Xiaowei Xu) у 1996 році. Він є алгоритмом кластеризації заснованим на щільності: для заданої множини точок у деякому просторі він відносить в одну групу точки, які розташовані найбільш щільно (точки з багатьма сусідами) та розмічає точки, які лежать в областях з невеликою щільністю (чиї сусіди розташовані занадто далеко) як викиди. DBSCAN є одним з найпоширеніших алгоритмів кластеризації, а також найбільш цитованим у науковій літературі.
Більш рання версія
Роберт Ф. Лінг (англ. Robert F. Ling) у 1972 році опублікував статтю «Теорія і побудова k-кластерів» в журналі [en]» з дуже близькою оцінкою часовою складністю виконання O(n³), тоді, як DBSCAN має у найгіршому випадку час виконання O(n²), і DBSCAN, сформульований у вигляді орієнтованому на запити діапазонів у базу даних, дозволяє прискорити індексування. Алгоритми також відрізняються в обробці точок розташованих на межі.
Попередні визначення
Розглянемо множину точок в деякому просторі, яка будемо кластеризувати. Метою кластеризації процедурою DBSCAN є поділ точок на ядрові, (щільно-)досяжні та викиди, які визначаються так:
- Точка p є ядровою, як хоча б minPts знаходяться на відстані ε (відстань ε є радіусом окола p) від неї, включно з p. Кажуть, що ці точки безпосередньо досяжні з p.
- Точка q безпосередньо досяжна з p, якщо точка q знаходиться на відстані не більшій ніж ε від точки ядрової точки p.
- Точка q є досяжною з p, якщо існує шлях p1, ..., pn з точок p1 = p та pn = q, де кожна pi+1 безпосередньо досяжна з pi (всі точки шляху повинні бути ядровими, можливо за виключенням q).
- Всі точки не досяжні з будь-якої іншої точки є викидами.
Отже, ядрова точка p утворює «кластер» разом з усіма точками (не важливо ядрові чи ні) досяжними з неї. Кожен кластер містить принаймні одну ядрову точку. Не-ядрові точки можуть бути частиною кластера, тоді вони утворюють «ребро» кластера, оскільни з них не будуть досяжні інші точки.
Досяжність не є симметричним відношенням, бо, за визначенням, немає точок досяжних з не-ядрової точки (не-ядрова точка може бути досяжною, але відносно неї немає досяжних точок). Тому, поняття зв'язності потрібне для формального визначення степені кластеризації в DBSCAN. Дві точки p та q є щільно-зв'язними, якщо існує точка o з якої вони є досяжними. Щільна-зв'язність є симетричною.
Тоді кластер має дві властивості:
- Всі точки кластера взаємно щільно-зв'язні.
- Якщо точка є щільно-зв'язно зв'язною з будь-якою точкою кластера, то вона так само належить кластеру.
Алгоритм
Початковий алгоритм на основі запитів до БД
Алгоритму DBSCAN потрібні два параметри: ε (eps) і мінімальна кількість точок необхідних для утворення щільної області (minPts). Побудова починається з довільної точки, яка раніше не використовувалась. Виконується запит щодо точок з ε-околу, і, якщо там буде достатньо точок, то утворюється кластер. Інакше, точка маркується як шумова. Зауважимо, що ця точка може бути знайдена пізніше в достатньо великому ε-околі іншої точки і належати кластеру, а не бути шумовою.
Якщо точка знаходиться у щільній частині кластера, то і її ε-окіл також буде частиною цього кластера. Отже, всі точки ε-околу також будуть додані у кластер, так само і ε-околи цих точок, якщо вони також будуть щільними. Цей процес продовжується доти, поки щільно-зв'язний кластер не буде знайдено повністю. Після цього виконується запит на нову необроблену точку, яка опрацьовується і, або знаходиться новий кластер, або вона позначається як шумова.
Алгоритм DBSCAN можна використовувати з будь-якою функцією відстані (так само, як функції подібності або інші предикати). Тому можна розглядати функцію відстані (dist) як додатковий параметр.
Алгоритм записаний на псевдокоді буде виглядати так:
DBSCAN(DB, distFunc, eps, minPts) { C = 0 /* Лічильник міток кластерів */ for each point P in database DB { if label(P) ≠ undefined then continue /* Раніше оброблено у внутрішньому циклі */ Neighbors N = RangeQuery(DB, distFunc, P, eps) /* Пошук сусідів */ if |N| < minPts then { /* Перевірка щільності */ label(P) = Noise /* Позначається як Шум */ continue } C = C + 1 /* Мітка наступного кластера */ label(P) = C /* Помічаємо початкову точку */ Seed set S = N \ {P} /* Множина з сусідів для перевірки */ for each point Q in S { /* Обробляємо кожну точку */ if label(Q) = Noise then label(Q) = C /* Зміна з Шум на граничну точку */ if label(Q) ≠ undefined then continue /* Раніше оброблені */ label(Q) = C /* Помічається сусід */ Neighbors N = RangeQuery(DB, distFunc, Q, eps) /* Пошук сусідів */ if |N| ≥ minPts then { /* Перевірка щільності */ S = S ∪ N /* Додаємо нових сусідів у множину для перевірки */ } } } }
Тут RangeQuery може бути реалізована за допомогою індексування бази даних для кращої швидкодії або можна використати повільний лінійний пошук:
RangeQuery(DB, distFunc, Q, eps) { Neighbors = empty list for each point P in database DB { /* Перебираємо всі точки в базі */ if distFunc(Q, P) ≤ eps then { /* Обчислюємо відстань і порівнюємо з епсилон */ Neighbors = Neighbors ∪ {P} /* Додаємо до результату */ } } return Neighbors }
Абстрактний алгоритм
Алгоритм DBSCAN можна абстрактно описати наступними кроками:
- Знайти точки у кожному ε-околі кожної точки та визначити ядрові точки, у яких більше ніж minPts сусідів.
- Знайти компоненти зв'язності для ядрових точок на графі сусідів, виключивши з розгляду точки, які не є ядровими.
- Приєднати кожну не ядрову точку до найближчого кластера, за умови, що кластер знаходиться в ε (eps) околі, інакше помітити її як шумову.
Наївна реалізація потребує зберігання списку сусідів на кроці 1, тому потрібно використовувати суттєвий об'єм пам'яті. Оригінальний алгоритм DBSCAN не потребує цього, бо виконує ці кроки для однієї точки за раз.
Складність
DBSCAN сканує кожну точку бази, можливо, навіть декілька разів. Наприклад, коли це кандидати до різних кластерів. Однак, з практичної точки зору, часова складність визначається кількістю запитів regionQuery. DBSCAN робить рівно один запит для кожної точки і, якщо використовувати (просторовий індекс) при пошуку сусідів, то можна це виконувати за час O(log n). Тоді можна досягти середньої часової складності O(n log n) за умови вибору параметру ε у такий спосіб, щоб запит повертав у середньому O(log n) точок. Без використання такого прискорення з просторовим індексом або для вироджених даних (коли всі точки на відстані меншій ніж ε), у найгіршому випадку часова складність буде O(n²). Матриця відстаней розміру (n²-n)/2 можна зберігати у пам'яті розміру O(n²), без використання матриці відстаней, реалізація DBSCAN потребує лише O(n) пам'яті.
Переваги
- Не потрібно вказувати апріорну кількість кластерів, як це потрібно для методу k-середніх.
- Знаходить кластери довільної форми. Може навіть знаходити кластер повністю оточений (але не лінійно зв'язний) іншим кластером. За допомогою параметру MinPts можна позбутись ефекту одного зв'язку, коли різні кластери зв'язані тонкою лінією.
- Має поняття шуму, і є надійним для виявлення аномалій.
- Потребує всього два параметри і здебільшого нечутливий до впорядкування точок. (Однак, точки розташовані на границі двох різних кластерів можуть змінити належність кластерам, якщо поміняти їх порядок у базі.)
- Призначений для використання з базами даних, які можуть прискорити регіональні запити, наприклад, використовують R*-дерево.
- Параметри minPts та ε можуть бути визначені [en], якщо дані зрозумілі.
Недоліки
- DBSCAN не є детерміністичним: точки на межі, які досяжні з декількох кластерів, можуть належати одному або іншому кластеру в залежності від порядку обробки даних. Для більшості наборів даних та областей, така проблема з'являється рідко і має незначний вплив на результат кластеризації, бо шумові та ядрові точки визначаються однозначно. DBSCAN* класифікує точки на межі як шум, що робить алгоритм детерміністичним і більш статистично узгоджену інтерпретацію компонент.
- Якість кластеризації залежить від функції відстані, яка використовується у функції regionQuery(P,ε). Зазвичай використовується евклідова відстань. Особливо при кластеризації багатовимірних даних ця метрика може стати негодящою через так зване «прокляття розмірності», що ускладнює пошук придатного значення для ε. Цей ефект, однак, присутній і в будь-якому іншому алгоритмі кластеризації, який використовує евклідову відстань.
- Не може кластеризувати набори даних з великим перепадом щільностей, оскільки неможливо підібрати поєднання значень minPts-ε, яке б відповідало різним кластерам.
- Якщо дані та масштаб не дуже зрозумілі, то вибір доречного порогового значення відстані ε може бути складним.
Дивись розділ нижче про модифікації алгоритму, які вирішують ці вади.
Оцінка параметрів
Кожна задача добування даних має проблему визначення параметрів. Кожен параметр впливає специфічним чином. Для DBSCAN потрібно визначати параметри ε та minPts. Ці параметри повинні бути визначені користувачем. В ідеальній ситуації значення ε визначається з проблеми, яка розв'язується (наприклад, це може бути фізична відстань), а minPts визначається з бажаного мінімального розміру кластера.
- MinPts: Як правило мінімальне значення параметру можна обчислити залежно від кількості вимірів D набору даних. А саме, minPts ≥ D + 1. Найменше значення minPts = 1, очевидно, не має сенсу, бо тоді кожна точка утворить кластер. При minPts ≤ 2, результат буде такий же самий, які і при ієрархічній кластеризації, тільки дерево буде обмежено висотою ε. Тому, щонайменшим значенням minPts буде 3. Однак, краще брати більші значення, як для наборів даних з шумами, так і для побудови більш вагомих кластерів. Як правило вибирають minPts = 2·dim, але можливо слід використовувати і більші значення для дуже великих даних, або для зашумлених даних або даних з великою кількістю дублікатів.
- ε: Значення для ε можна вибрати за допомогою графу k-відстані виводячи відстань по графіку для k = minPts-1 найближчих сусідів впорядкованих від найбільшого до найменшого значення. Гарним значення ε відповідає точці на графіку, де утворюється «згин»: якщо ε вибрано занадто малим, то велика частина даних не буде кластерізована; якщо ж ε буде занадто великим, то кластери зіллються і різні об'єкти опиняться в одному кластері. Загалом, краще брати невеликі значення ε, бо, як правило, тільки невеликі частини даних повинні бути в межах цієї відстані один від одного. Крім того, можна використати алгоритм OPTICS для вибору ε, але тоді можна його застосувати і для кластеризації даних.
- Функція відстані: Вибір функції відстані тісно пов'язаний з вибором ε, і має значний вплив на результати. Загалом, перш за все необхідно визначити розумну міру подібності для набору даних, перш ніж вибирати параметр ε. Для цього параметра немає оцінок, але функцію відстані слід обирати відповідно до набору даних. Наприклад, для географічних даних, відстань, яка вимірюється по великому колу, є найбільш прийнятною.
OPTICS можна розглядати як узагальнення DBSCAN, який замінює параметр ε максимальним значенням, що найбільше впливає на швидкодію. MinPts по суті стає мінімальним розміром кластера. Хоча цей алгоритм набагато простіше параметризувати, ніж DBSCAN, його результати трохи важче використати ніж результати DBSCAN, бо він будує ієрархічну кластеризацію замість простого розбиття даних, як це робить DBSCAN.
Нещодавно, один з авторів DBSCAN переглянув роботу DBSCAN та OPTICS, й оприлюднив удосконалену версію ієрархічного алгоритму DBSCAN (HDBSCAN*), яка вже не використовує поняття точок на межі. Натомість, кластер утворюють лише ядрові точки.
Узагальнення
DBSCAN (GDBSCAN) був узагальнений тими ж авторами на довільні предикати «окіл» та «щільність». Параметри ε та minPts були переміщені з алгоритму у ці предикати. Наприклад, для даних на багатокутнику, поняття «сусідні» можна сприймати, як такі, що мають перетин, а поняття щільності використовує площі полігонів замість підрахування кількості об'єктів.
Пропонуються різні методи розширення алгоритму DBSCAN, такі як розпаралелювання, оцінка параметрів та підтримка невизначених даних. Основна ідея була розповсюджена на ієрархічну кластеризацію за допомогою алгоритму OPTICS. DBSCAN також використовується як складова частина алгоритмів підпросторової кластеризації, таких як PreDeCon і [en]. HDBSCAN — це ієрархічний варіант DBSCAN, швидший за OPTICS, в якому можна отримати розбиття на найбільші кластери з ієрархії.
Реалізації
З'ясувалось, що різні реалізації одного й того ж алгоритму мають дуже велику різницю у швидкодії. На тестовому наборі даних найшвидший виконувався 1,4 секунди, а найповільніший 13803 секунди. Таку різницю можна пояснити якістю реалізації, вибором мови програмування та відмінностями у компіляторах, і використанням індексів для пришвидшення.
- [en] Math [ 6 жовтня 2014 у Wayback Machine.] містить реалізацію на Java, яка виконується за квадратичний час.
- [en] має різні реалізації DBSCAN, такі як GDBSCAN та інші. Ця реалізація може використовувати різні структури індексу для досягнення (доквадратичного часу) виконання. Також вона підтримує довільні функції відстані та довільні типи даних, але це можна перевершити, якщо використати низькорівневу оптимізацію (та спеціалізацію) орієнтуючись на невеликі набори даних.
- R містить DBSCAN у пакеті fpc з підтримкою довільних функцій відстані як матриці відстаней. Проте не підтримує індекси (тому має квадратичний час виконання та об'єм пам'яті) та є досить повільним через R-інтерпретатор. Швидша версія реалізована на C++ з використанням k-вимірних дерев (тільки для евклідової відстані) в R-пакеті dbscan.
- scikit-learn включає реалізацію DBSCAN на мові Python для довільної відстані Мінковського, яка може бути пришвидшена за допомогою k-вимірних дерев та [en], але вони використовують у найгіршому випадку квадратичну пам'ять. Наявна [ 11 червня 2018 у Wayback Machine.] реалізація алгоритму HDBSCAN*.
- Бібліотека pyclustering [ 11 червня 2018 у Wayback Machine.] містить реалізації на мовах Python та C++ тільки для евклідової відстані, так само, як і для алгоритму OPTICS.
- SPMF [ 17 жовтня 2018 у Wayback Machine.] містить реалізацію DBSCAN з підтримкою k-вимірних дерев тільки для евклідової відстані.
- Weka містить (як опціональний пакет у більш пізніх версіях) базову реалізацію DBSCAN, яка виконується за квадратичний час та потребує лінійної пам'яті.
Примітки
- Інтуїтивно minPts відповідає мінімальному розміру кластера, але в деяких випадках DBSCAN може утворювати й менші кластери. Кластери DBSCAN містять щонайменше одну ядрову точку. Оскільки інші точки можуть бути на межі більш ніж одного кластера, тому немає гарантії, що принаймні minPts точок буде у кожному кластері.
Посилання
- Ester, Martin; ; Sander, Jörg; Xu, Xiaowei (1996). Simoudis, Evangelos; Han, Jiawei; Fayyad, Usama M. (ред.). A density-based algorithm for discovering clusters in large spatial databases with noise. Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96). . с. 226—231. CiteSeerX 10.1.1.121.9220. ISBN .
- . Архів оригіналу за 21 квітня 2010. Процитовано 18 квітня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () Найбільш цитовані статті по добуванню даних згідно з сервісом Microsoft академічного пошуку DBSCAN має рейтинг 24. - Ling, R. F. (1 січня 1972). . The Computer Journal (англ.). 15 (4): 326—332. doi:10.1093/comjnl/15.4.326. ISSN 0010-4620. Архів оригіналу за 13 жовтня 2018. Процитовано 12 жовтня 2018.
- Schubert, Erich; Sander, Jörg; Ester, Martin; ; Xu, Xiaowei (July 2017). . ACM Trans. Database Syst. 42 (3): 19:1–19:21. doi:10.1145/3068335. ISSN 0362-5915. Архів оригіналу за 18 вересня 2018. Процитовано 16 жовтня 2018.
- Sander, Jörg; Ester, Martin; ; Xu, Xiaowei (1998). Density-Based Clustering in Spatial Databases: The Algorithm GDBSCAN and Its Applications. Data Mining and Knowledge Discovery. Berlin: Springer-Verlag. 2 (2): 169—194. doi:10.1023/A:1009745219419.[недоступне посилання]
- Campello, Ricardo J. G. B.; Moulavi, Davoud; ; Sander, Jörg (2015). Hierarchical Density Estimates for Data Clustering, Visualization, and Outlier Detection. ACM Transactions on Knowledge Discovery from Data. 10 (1): 1—51. doi:10.1145/2733381. ISSN 1556-4681.
- ; Kröger, Peer; Sander, Jörg; (2011). . WIREs Data Mining and Knowledge Discovery. 1 (3): 231—240. doi:10.1002/widm.30. Архів оригіналу за 17 листопада 2016. Процитовано 16 жовтня 2018.
- Sander, Jörg (1998). Generalized Density-Based Clustering for Spatial Data Mining. München: Herbert Utz Verlag. ISBN .
- Campello, R. J. G. B.; Moulavi, D.; ; Sander, J. (2013). A framework for semi-supervised and unsupervised optimal extraction of clusters from hierarchies. Data Mining and Knowledge Discovery. 27 (3): 344. doi:10.1007/s10618-013-0311-4.
- ; Schubert, Erich; (2016). The (black) art of runtime evaluation: Are we comparing algorithms or implementations?. Knowledge and Information Systems. 52 (2): 341. doi:10.1007/s10115-016-1004-2. ISSN 0219-1377.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
DBSCAN angl density based spatial clustering of applications with noise algoritm klasterizaciyi danih yakij zaproponuvali Martin Ester angl Martin Ester en Jorg Sander angl Jorg Sander ta Syaovej Su angl Xiaowei Xu u 1996 roci Vin ye algoritmom klasterizaciyi zasnovanim na shilnosti dlya zadanoyi mnozhini tochok u deyakomu prostori vin vidnosit v odnu grupu tochki yaki roztashovani najbilsh shilno tochki z bagatma susidami ta rozmichaye tochki yaki lezhat v oblastyah z nevelikoyu shilnistyu chiyi susidi roztashovani zanadto daleko yak vikidi DBSCAN ye odnim z najposhirenishih algoritmiv klasterizaciyi a takozh najbilsh citovanim u naukovij literaturi DBSCAN mozhe znahoditi linijno ne rozdilni klasteri Cej nabir danih ne mozhe buti adekvatno klasterizovano metodom k serednih abo EM algoritmom Bilsh rannya versiyaRobert F Ling angl Robert F Ling u 1972 roci opublikuvav stattyu Teoriya i pobudova k klasteriv v zhurnali en z duzhe blizkoyu ocinkoyu chasovoyu skladnistyu vikonannya O n todi yak DBSCAN maye u najgirshomu vipadku chas vikonannya O n i DBSCAN sformulovanij u viglyadi oriyentovanomu na zapiti diapazoniv u bazu danih dozvolyaye priskoriti indeksuvannya Algoritmi takozh vidriznyayutsya v obrobci tochok roztashovanih na mezhi Poperedni viznachennyaRozglyanemo mnozhinu tochok v deyakomu prostori yaka budemo klasterizuvati Metoyu klasterizaciyi proceduroyu DBSCAN ye podil tochok na yadrovi shilno dosyazhni ta vikidi yaki viznachayutsya tak Tochka p ye yadrovoyu yak hocha b minPts znahodyatsya na vidstani e vidstan e ye radiusom okola p vid neyi vklyuchno z p Kazhut sho ci tochki bezposeredno dosyazhni z p Tochka q bezposeredno dosyazhna z p yaksho tochka q znahoditsya na vidstani ne bilshij nizh e vid tochki yadrovoyi tochki p Tochka q ye dosyazhnoyu z p yaksho isnuye shlyah p1 pn z tochok p1 p ta pn q de kozhna pi 1 bezposeredno dosyazhna z pi vsi tochki shlyahu povinni buti yadrovimi mozhlivo za viklyuchennyam q Vsi tochki ne dosyazhni z bud yakoyi inshoyi tochki ye vikidami Otzhe yadrova tochka p utvoryuye klaster razom z usima tochkami ne vazhlivo yadrovi chi ni dosyazhnimi z neyi Kozhen klaster mistit prinajmni odnu yadrovu tochku Ne yadrovi tochki mozhut buti chastinoyu klastera todi voni utvoryuyut rebro klastera oskilni z nih ne budut dosyazhni inshi tochki Na zobrazhenni minPts 4 Tochka A yak i chervoni tochki ye yadrovimi bo okil cih tochok radiusa e mistit shonajmenshe 4 tochki vklyuchno z neyu samoyu Oskilki vsi voni dosyazhni odna z odnoyi to voni utvoryuyut spilnij klaster Tochki B ta C ne budut yadrovimi ale dosyazhni z A abo z inshih yadrovih tochok i tomu nalezhat klasteru Tochka N ye shumovoyu bo ne bude ni yadrovoyu ni bezposeredno dosyazhnoyu Dosyazhnist ne ye simmetrichnim vidnoshennyam bo za viznachennyam nemaye tochok dosyazhnih z ne yadrovoyi tochki ne yadrova tochka mozhe buti dosyazhnoyu ale vidnosno neyi nemaye dosyazhnih tochok Tomu ponyattya zv yaznosti potribne dlya formalnogo viznachennya stepeni klasterizaciyi v DBSCAN Dvi tochki p ta q ye shilno zv yaznimi yaksho isnuye tochka o z yakoyi voni ye dosyazhnimi Shilna zv yaznist ye simetrichnoyu Todi klaster maye dvi vlastivosti Vsi tochki klastera vzayemno shilno zv yazni Yaksho tochka ye shilno zv yazno zv yaznoyu z bud yakoyu tochkoyu klastera to vona tak samo nalezhit klasteru AlgoritmPochatkovij algoritm na osnovi zapitiv do BD Algoritmu DBSCAN potribni dva parametri e eps i minimalna kilkist tochok neobhidnih dlya utvorennya shilnoyi oblasti minPts Pobudova pochinayetsya z dovilnoyi tochki yaka ranishe ne vikoristovuvalas Vikonuyetsya zapit shodo tochok z e okolu i yaksho tam bude dostatno tochok to utvoryuyetsya klaster Inakshe tochka markuyetsya yak shumova Zauvazhimo sho cya tochka mozhe buti znajdena piznishe v dostatno velikomu e okoli inshoyi tochki i nalezhati klasteru a ne buti shumovoyu Yaksho tochka znahoditsya u shilnij chastini klastera to i yiyi e okil takozh bude chastinoyu cogo klastera Otzhe vsi tochki e okolu takozh budut dodani u klaster tak samo i e okoli cih tochok yaksho voni takozh budut shilnimi Cej proces prodovzhuyetsya doti poki shilno zv yaznij klaster ne bude znajdeno povnistyu Pislya cogo vikonuyetsya zapit na novu neobroblenu tochku yaka opracovuyetsya i abo znahoditsya novij klaster abo vona poznachayetsya yak shumova Algoritm DBSCAN mozhna vikoristovuvati z bud yakoyu funkciyeyu vidstani tak samo yak funkciyi podibnosti abo inshi predikati Tomu mozhna rozglyadati funkciyu vidstani dist yak dodatkovij parametr Algoritm zapisanij na psevdokodi bude viglyadati tak DBSCAN DB distFunc eps minPts C 0 Lichilnik mitok klasteriv for each point P in database DB if label P undefined then continue Ranishe obrobleno u vnutrishnomu cikli Neighbors N RangeQuery DB distFunc P eps Poshuk susidiv if N lt minPts then Perevirka shilnosti label P Noise Poznachayetsya yak Shum continue C C 1 Mitka nastupnogo klastera label P C Pomichayemo pochatkovu tochku Seed set S N P Mnozhina z susidiv dlya perevirki for each point Q in S Obroblyayemo kozhnu tochku if label Q Noise then label Q C Zmina z Shum na granichnu tochku if label Q undefined then continue Ranishe obrobleni label Q C Pomichayetsya susid Neighbors N RangeQuery DB distFunc Q eps Poshuk susidiv if N minPts then Perevirka shilnosti S S N Dodayemo novih susidiv u mnozhinu dlya perevirki Tut RangeQuery mozhe buti realizovana za dopomogoyu indeksuvannya bazi danih dlya krashoyi shvidkodiyi abo mozhna vikoristati povilnij linijnij poshuk RangeQuery DB distFunc Q eps Neighbors empty list for each point P in database DB Perebirayemo vsi tochki v bazi if distFunc Q P eps then Obchislyuyemo vidstan i porivnyuyemo z epsilon Neighbors Neighbors P Dodayemo do rezultatu return Neighbors Abstraktnij algoritm Algoritm DBSCAN mozhna abstraktno opisati nastupnimi krokami Znajti tochki u kozhnomu e okoli kozhnoyi tochki ta viznachiti yadrovi tochki u yakih bilshe nizh minPts susidiv Znajti komponenti zv yaznosti dlya yadrovih tochok na grafi susidiv viklyuchivshi z rozglyadu tochki yaki ne ye yadrovimi Priyednati kozhnu ne yadrovu tochku do najblizhchogo klastera za umovi sho klaster znahoditsya v e eps okoli inakshe pomititi yiyi yak shumovu Nayivna realizaciya potrebuye zberigannya spisku susidiv na kroci 1 tomu potribno vikoristovuvati suttyevij ob yem pam yati Originalnij algoritm DBSCAN ne potrebuye cogo bo vikonuye ci kroki dlya odniyeyi tochki za raz SkladnistDBSCAN skanuye kozhnu tochku bazi mozhlivo navit dekilka raziv Napriklad koli ce kandidati do riznih klasteriv Odnak z praktichnoyi tochki zoru chasova skladnist viznachayetsya kilkistyu zapitiv regionQuery DBSCAN robit rivno odin zapit dlya kozhnoyi tochki i yaksho vikoristovuvati prostorovij indeks pri poshuku susidiv to mozhna ce vikonuvati za chas O log n Todi mozhna dosyagti serednoyi chasovoyi skladnosti O n log n za umovi viboru parametru e u takij sposib shob zapit povertav u serednomu O log n tochok Bez vikoristannya takogo priskorennya z prostorovim indeksom abo dlya virodzhenih danih koli vsi tochki na vidstani menshij nizh e u najgirshomu vipadku chasova skladnist bude O n Matricya vidstanej rozmiru n n 2 mozhna zberigati u pam yati rozmiru O n bez vikoristannya matrici vidstanej realizaciya DBSCAN potrebuye lishe O n pam yati PerevagiNe potribno vkazuvati apriornu kilkist klasteriv yak ce potribno dlya metodu k serednih Znahodit klasteri dovilnoyi formi Mozhe navit znahoditi klaster povnistyu otochenij ale ne linijno zv yaznij inshim klasterom Za dopomogoyu parametru MinPts mozhna pozbutis efektu odnogo zv yazku koli rizni klasteri zv yazani tonkoyu liniyeyu Maye ponyattya shumu i ye nadijnim dlya viyavlennya anomalij Potrebuye vsogo dva parametri i zdebilshogo nechutlivij do vporyadkuvannya tochok Odnak tochki roztashovani na granici dvoh riznih klasteriv mozhut zminiti nalezhnist klasteram yaksho pominyati yih poryadok u bazi Priznachenij dlya vikoristannya z bazami danih yaki mozhut priskoriti regionalni zapiti napriklad vikoristovuyut R derevo Parametri minPts ta e mozhut buti viznacheni en yaksho dani zrozumili NedolikiDBSCAN ne ye deterministichnim tochki na mezhi yaki dosyazhni z dekilkoh klasteriv mozhut nalezhati odnomu abo inshomu klasteru v zalezhnosti vid poryadku obrobki danih Dlya bilshosti naboriv danih ta oblastej taka problema z yavlyayetsya ridko i maye neznachnij vpliv na rezultat klasterizaciyi bo shumovi ta yadrovi tochki viznachayutsya odnoznachno DBSCAN klasifikuye tochki na mezhi yak shum sho robit algoritm deterministichnim i bilsh statistichno uzgodzhenu interpretaciyu komponent Yakist klasterizaciyi zalezhit vid funkciyi vidstani yaka vikoristovuyetsya u funkciyi regionQuery P e Zazvichaj vikoristovuyetsya evklidova vidstan Osoblivo pri klasterizaciyi bagatovimirnih danih cya metrika mozhe stati negodyashoyu cherez tak zvane proklyattya rozmirnosti sho uskladnyuye poshuk pridatnogo znachennya dlya e Cej efekt odnak prisutnij i v bud yakomu inshomu algoritmi klasterizaciyi yakij vikoristovuye evklidovu vidstan Ne mozhe klasterizuvati nabori danih z velikim perepadom shilnostej oskilki nemozhlivo pidibrati poyednannya znachen minPts e yake b vidpovidalo riznim klasteram Yaksho dani ta masshtab ne duzhe zrozumili to vibir dorechnogo porogovogo znachennya vidstani e mozhe buti skladnim Divis rozdil nizhche pro modifikaciyi algoritmu yaki virishuyut ci vadi Ocinka parametrivKozhna zadacha dobuvannya danih maye problemu viznachennya parametriv Kozhen parametr vplivaye specifichnim chinom Dlya DBSCAN potribno viznachati parametri e ta minPts Ci parametri povinni buti viznacheni koristuvachem V idealnij situaciyi znachennya e viznachayetsya z problemi yaka rozv yazuyetsya napriklad ce mozhe buti fizichna vidstan a minPts viznachayetsya z bazhanogo minimalnogo rozmiru klastera MinPts Yak pravilo minimalne znachennya parametru mozhna obchisliti zalezhno vid kilkosti vimiriv D naboru danih A same minPts D 1 Najmenshe znachennya minPts 1 ochevidno ne maye sensu bo todi kozhna tochka utvorit klaster Pri minPts 2 rezultat bude takij zhe samij yaki i pri iyerarhichnij klasterizaciyi tilki derevo bude obmezheno visotoyu e Tomu shonajmenshim znachennyam minPts bude 3 Odnak krashe brati bilshi znachennya yak dlya naboriv danih z shumami tak i dlya pobudovi bilsh vagomih klasteriv Yak pravilo vibirayut minPts 2 dim ale mozhlivo slid vikoristovuvati i bilshi znachennya dlya duzhe velikih danih abo dlya zashumlenih danih abo danih z velikoyu kilkistyu dublikativ e Znachennya dlya e mozhna vibrati za dopomogoyu grafu k vidstani vivodyachi vidstan po grafiku dlya k minPts 1 najblizhchih susidiv vporyadkovanih vid najbilshogo do najmenshogo znachennya Garnim znachennya e vidpovidaye tochci na grafiku de utvoryuyetsya zgin yaksho e vibrano zanadto malim to velika chastina danih ne bude klasterizovana yaksho zh e bude zanadto velikim to klasteri zillyutsya i rizni ob yekti opinyatsya v odnomu klasteri Zagalom krashe brati neveliki znachennya e bo yak pravilo tilki neveliki chastini danih povinni buti v mezhah ciyeyi vidstani odin vid odnogo Krim togo mozhna vikoristati algoritm OPTICS dlya viboru e ale todi mozhna jogo zastosuvati i dlya klasterizaciyi danih Funkciya vidstani Vibir funkciyi vidstani tisno pov yazanij z viborom e i maye znachnij vpliv na rezultati Zagalom persh za vse neobhidno viznachiti rozumnu miru podibnosti dlya naboru danih persh nizh vibirati parametr e Dlya cogo parametra nemaye ocinok ale funkciyu vidstani slid obirati vidpovidno do naboru danih Napriklad dlya geografichnih danih vidstan yaka vimiryuyetsya po velikomu kolu ye najbilsh prijnyatnoyu OPTICS mozhna rozglyadati yak uzagalnennya DBSCAN yakij zaminyuye parametr e maksimalnim znachennyam sho najbilshe vplivaye na shvidkodiyu MinPts po suti staye minimalnim rozmirom klastera Hocha cej algoritm nabagato prostishe parametrizuvati nizh DBSCAN jogo rezultati trohi vazhche vikoristati nizh rezultati DBSCAN bo vin buduye iyerarhichnu klasterizaciyu zamist prostogo rozbittya danih yak ce robit DBSCAN Neshodavno odin z avtoriv DBSCAN pereglyanuv robotu DBSCAN ta OPTICS j oprilyudniv udoskonalenu versiyu iyerarhichnogo algoritmu DBSCAN HDBSCAN yaka vzhe ne vikoristovuye ponyattya tochok na mezhi Natomist klaster utvoryuyut lishe yadrovi tochki UzagalnennyaDBSCAN GDBSCAN buv uzagalnenij timi zh avtorami na dovilni predikati okil ta shilnist Parametri e ta minPts buli peremisheni z algoritmu u ci predikati Napriklad dlya danih na bagatokutniku ponyattya susidni mozhna sprijmati yak taki sho mayut peretin a ponyattya shilnosti vikoristovuye ploshi poligoniv zamist pidrahuvannya kilkosti ob yektiv Proponuyutsya rizni metodi rozshirennya algoritmu DBSCAN taki yak rozparalelyuvannya ocinka parametriv ta pidtrimka neviznachenih danih Osnovna ideya bula rozpovsyudzhena na iyerarhichnu klasterizaciyu za dopomogoyu algoritmu OPTICS DBSCAN takozh vikoristovuyetsya yak skladova chastina algoritmiv pidprostorovoyi klasterizaciyi takih yak PreDeCon i en HDBSCAN ce iyerarhichnij variant DBSCAN shvidshij za OPTICS v yakomu mozhna otrimati rozbittya na najbilshi klasteri z iyerarhiyi RealizaciyiZ yasuvalos sho rizni realizaciyi odnogo j togo zh algoritmu mayut duzhe veliku riznicyu u shvidkodiyi Na testovomu nabori danih najshvidshij vikonuvavsya 1 4 sekundi a najpovilnishij 13803 sekundi Taku riznicyu mozhna poyasniti yakistyu realizaciyi viborom movi programuvannya ta vidminnostyami u kompilyatorah i vikoristannyam indeksiv dlya prishvidshennya en Math 6 zhovtnya 2014 u Wayback Machine mistit realizaciyu na Java yaka vikonuyetsya za kvadratichnij chas en maye rizni realizaciyi DBSCAN taki yak GDBSCAN ta inshi Cya realizaciya mozhe vikoristovuvati rizni strukturi indeksu dlya dosyagnennya dokvadratichnogo chasu vikonannya Takozh vona pidtrimuye dovilni funkciyi vidstani ta dovilni tipi danih ale ce mozhna perevershiti yaksho vikoristati nizkorivnevu optimizaciyu ta specializaciyu oriyentuyuchis na neveliki nabori danih R mistit DBSCAN u paketi fpc z pidtrimkoyu dovilnih funkcij vidstani yak matrici vidstanej Prote ne pidtrimuye indeksi tomu maye kvadratichnij chas vikonannya ta ob yem pam yati ta ye dosit povilnim cherez R interpretator Shvidsha versiya realizovana na C z vikoristannyam k vimirnih derev tilki dlya evklidovoyi vidstani v R paketi dbscan scikit learn vklyuchaye realizaciyu DBSCAN na movi Python dlya dovilnoyi vidstani Minkovskogo yaka mozhe buti prishvidshena za dopomogoyu k vimirnih derev ta en ale voni vikoristovuyut u najgirshomu vipadku kvadratichnu pam yat Nayavna 11 chervnya 2018 u Wayback Machine realizaciya algoritmu HDBSCAN Biblioteka pyclustering 11 chervnya 2018 u Wayback Machine mistit realizaciyi na movah Python ta C tilki dlya evklidovoyi vidstani tak samo yak i dlya algoritmu OPTICS SPMF 17 zhovtnya 2018 u Wayback Machine mistit realizaciyu DBSCAN z pidtrimkoyu k vimirnih derev tilki dlya evklidovoyi vidstani Weka mistit yak opcionalnij paket u bilsh piznih versiyah bazovu realizaciyu DBSCAN yaka vikonuyetsya za kvadratichnij chas ta potrebuye linijnoyi pam yati PrimitkiIntuyitivno minPts vidpovidaye minimalnomu rozmiru klastera ale v deyakih vipadkah DBSCAN mozhe utvoryuvati j menshi klasteri Klasteri DBSCAN mistyat shonajmenshe odnu yadrovu tochku Oskilki inshi tochki mozhut buti na mezhi bilsh nizh odnogo klastera tomu nemaye garantiyi sho prinajmni minPts tochok bude u kozhnomu klasteri PosilannyaEster Martin Sander Jorg Xu Xiaowei 1996 Simoudis Evangelos Han Jiawei Fayyad Usama M red A density based algorithm for discovering clusters in large spatial databases with noise Proceedings of the Second International Conference on Knowledge Discovery and Data Mining KDD 96 s 226 231 CiteSeerX 10 1 1 121 9220 ISBN 1 57735 004 9 Arhiv originalu za 21 kvitnya 2010 Procitovano 18 kvitnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Najbilsh citovani statti po dobuvannyu danih zgidno z servisom Microsoft akademichnogo poshuku DBSCAN maye rejting 24 Ling R F 1 sichnya 1972 The Computer Journal angl 15 4 326 332 doi 10 1093 comjnl 15 4 326 ISSN 0010 4620 Arhiv originalu za 13 zhovtnya 2018 Procitovano 12 zhovtnya 2018 Schubert Erich Sander Jorg Ester Martin Xu Xiaowei July 2017 ACM Trans Database Syst 42 3 19 1 19 21 doi 10 1145 3068335 ISSN 0362 5915 Arhiv originalu za 18 veresnya 2018 Procitovano 16 zhovtnya 2018 Sander Jorg Ester Martin Xu Xiaowei 1998 Density Based Clustering in Spatial Databases The Algorithm GDBSCAN and Its Applications Data Mining and Knowledge Discovery Berlin Springer Verlag 2 2 169 194 doi 10 1023 A 1009745219419 nedostupne posilannya Campello Ricardo J G B Moulavi Davoud Sander Jorg 2015 Hierarchical Density Estimates for Data Clustering Visualization and Outlier Detection ACM Transactions on Knowledge Discovery from Data 10 1 1 51 doi 10 1145 2733381 ISSN 1556 4681 Kroger Peer Sander Jorg 2011 WIREs Data Mining and Knowledge Discovery 1 3 231 240 doi 10 1002 widm 30 Arhiv originalu za 17 listopada 2016 Procitovano 16 zhovtnya 2018 Sander Jorg 1998 Generalized Density Based Clustering for Spatial Data Mining Munchen Herbert Utz Verlag ISBN 3 89675 469 6 Campello R J G B Moulavi D Sander J 2013 A framework for semi supervised and unsupervised optimal extraction of clusters from hierarchies Data Mining and Knowledge Discovery 27 3 344 doi 10 1007 s10618 013 0311 4 Schubert Erich 2016 The black art of runtime evaluation Are we comparing algorithms or implementations Knowledge and Information Systems 52 2 341 doi 10 1007 s10115 016 1004 2 ISSN 0219 1377