/ / dbscan - лимит за задаване на максимален обхват на клъстера - питон, алгоритъм, клъстерен анализ, извличане на данни

dbscan - задаване на ограничения за максималния обхват на клъстера - питън, алгоритъм, анализ на клъстерите, извличане на данни, dbscan

По мое разбиране за DBSCAN е възможно да укажете епсилон от, да речем, 100 метра и - защото DBSCAN взема предвид плътност-достъпност и не пряка плътност-достижимост при намиране на клъстери - свършваме с клъстермаксималното разстояние между две точки е> 100 метра. При по-екстремна възможност изглежда възможно да настроите епсилон на 100 метра и да завършите с клъстер от 1 километър: виж [2] [6] в този масив от изображения от scikit learn за пример, когато това може да се случи. (Аз съм повече от готов да ми бъде казано, че съм пълен идиот и съм недоразумение DBSCAN, ако това се случва тук.)

Има ли алгоритъм, който е базиран на плътност като DBSCAN, но взема предвид някакъв праг за максималното разстояние между две точки в група?

Отговори:

9 за отговор № 1

DBSCAN наистина не налага общо ограничение на размера на клъстера.

Стойността на епсилон най-добре се интерпретира като размер на пропастта, разделяща два клъстера (които могат да съдържат най-много обекти minpts-1).

Вярвам, че всъщност дори не търсите кластеризация: клъстерирането е задача на откриване на структура в данните, Структурата може да бъде по-опростена (например k-знака) или сложна (като произволно оформени клъстери, открити чрез йерархично групиране и k-средства).

Може би търсите векторно квантуване - намаляване на набор от данни до по-малък набор от представители - или прикритие - да се намери оптималното покритие за даден набор - вместо това.

Въпреки това, аз също имам впечатлението, че не сте наистина сигурни какво ви трябва и защо.

Продължителността на DBSCAN е, че има a математическа дефиниция на структурата под формата на компоненти, свързани с плътност. Това е силна и (с изключение на някои редки гранични случаи) добре дефинирана математическа концепция и алгоритъмът DBSCAN е оптимално ефективен алгоритъм за откриване на тази структура.

Директен достижимостта на плътността обаче не определя полезна (разделителна) структура не разделя данните в несъвместими дялове.

Ако не се нуждаете от този вид силна структура(т.е. не правите клъстеризация, както в "откриването на структурата", но просто искате да компресирате данните си както при векторното квантуване), можете да опитате "прекъсване на навеса", което може да се разглежда като стъпка за предварителна обработка, предназначена за групиране По същество, това е като DBSCAN, с изключение на това, че използва две епсилон стойности, а структурата не е гарантирана да бъде оптимална по никакъв начин, но ще зависи в голяма степен от подреждането на вашите данни. Освен ако не сте в разпределена настройка, предкластерирането на балдахин е поне толкова скъпо, колкото пълното изпълнение на DBSCAN. "), е по-лесно да се паралелизира.

О, и може би просто търсите йерархично клъстериране на пълна връзка, Ако отрежете дендрограмата по ваше желаниевисочината, получените клъстери трябва да имат желаното максимално разстояние между всеки два обекта. Единственият проблем е, че йерархичното групиране обикновено е O(n^3)т.е. няма мащаб към големи масиви от данни. DBSCAN работи O(n log n) в добри реализации (с поддръжка на индекс).