Кластеризация DBSCAN требует значения для параметра размера окружения ε. clusterDBSCAN
возразите и clusterDBSCAN.estimateEpsilon
функционируйте используют k - само-соседний поиск, чтобы оценить скалярный эпсилон. Позвольте D быть расстоянием любой точки P к ее k th самый близкий сосед. Задайте Dk (P) - окружение как окружение, окружающее P, который содержит его k - ближайших соседей. Существует k + 1 точка в Dk (P) - окружение включая саму точку P. Схема алгоритма оценки:
Для каждой точки найдите все точки в ее Dk (P) - окружение
Накопите расстояния во всем Dk (P) - окружения для всех точек в один вектор.
Сортировка вектора путем увеличения расстояния.
Постройте отсортированный k-dist график, который является отсортированным расстоянием против номера точки.
Найдите колено кривой. Значение расстояния в той точке является оценкой эпсилона.
Рисунок здесь показывает расстояние, построенное против индекса точки для k = 20. Колено происходит приблизительно в 1,5. Любые точки ниже этого порога принадлежат кластеру. Любые точки выше этого значения являются шумом.
Существует несколько методов, чтобы найти колено кривой. clusterDBSCAN
и clusterDBSCAN.estimateEpsilon
сначала задайте линию, соединяющую первые и последние точки кривой. Ордината точки на отсортированном k-dist график дальше всего от линии и перпендикуляра к линии задает эпсилон.
Когда вы указываете диапазон значений k, алгоритм составляет в среднем оценочные значения эпсилона для всех кривых. Этот рисунок показывает, что эпсилон довольно нечувствителен к k для k в пределах от 14 - 19.
Чтобы создать один k график расстояния-NN, установите MinNumPoints
свойство, равное MaxNumPoints
свойство.