DBSCAN (плотностная кластеризация с выделением шума) находит кластеры произвольной формы без задания числа кластеров k. Два параметра задают «локальную плотность»: радиус ε окрестности и minPts — минимальное число точек (включая саму точку) в шаре радиуса ε, чтобы объект был ядром. Кластеры наращиваются от ядер: любая ещё не посещённая точка из ε-окрестности ядра попадает в тот же кластер; достигнутые неядра — граница; всё, что не поглощено, — шум. В отличие от k-means, DBSCAN может отбрасывать редкие выбросы и разделять близкие «кучки» при малом ε; большой ε наоборот склеивает области через разреженные «мосты». Симулятор мгновенно пересчитывает метки при изменении ε и minPts: цвет по кластеру, шум — серый с красным обводочным контуром; опционально рисуются окружности ε вокруг ядер в экранных координатах (учебная подсказка масштаба, не второй метрики). Демо смешивает четыре плотных гауссовых облака с равномерно разбросанным фоном, чтобы класс шума был хорошо виден.
Для кого: Вводные курсы ML или пространственного анализа: сравнение k-means (разбиение) и DBSCAN (плотность); хорошо сочетается с лабораторией Ллойда на сайте.
Ключевые понятия
DBSCAN
Окрестность ε
minPts
Ядро
Граница
Шум
Плотностная достижимость
Произвольная форма кластера
Как это работает
DBSCAN: ядро, если в шаре радиуса ε не меньше minPts соседей; кластер растёт из ядер по ε-связности; непоглощённые точки — шум. Маленькое ε «режет мосты» между кучками; большое ε их склеивает; демо — плотные облака + разреженный фон.
Часто задаваемые вопросы
Почему малое изменение ε резко меняет число кластеров?
Решения пороговые: считается число точек в фиксированном шаре. У критической плотности чуть больший ε может «протянуть мост» между двумя плотными областями и склеить кластеры; меньший ε — разорвать. Такая негладкость заложена в жёсткую плотностную модель.
Как выбрать minPts в 2D?
Часто берут minPts ≈ 2·dim для низкой размерности (в плоскости 4 как старт), затем подстраивают под допустимый уровень шума: больше minPts — жёстче требование к ядрам и больше точек уходит в шум.
Это точь-в-точь как sklearn DBSCAN?
Логика ядро / граница / шум и расширение по ε-окрестностям совпадает по сути, но без kd-деревьев и тонких политик библиотек. Цель — наглядная корректность для урока, не побитовая идентичность промышленному коду.