DBSCAN
Алгоритм DBSCAN
определяет кластеры, как участки с наибольшей плотностью объектов в пространстве, разделенные участками с низкой плотностью. Кластеры, определенные этим алгоритмом, могут иметь любую форму. Число кластеров определяется в процессе исполнения алгоритма. DBSCAN
имеет два основных параметра: min_samples
и eps
, которые задают минимальное число объектов в кластере и максимальное расстояние между точками, которые могут считаться соседями, соответственно. Большее значение min_samples
и меньшее eps
требуют более плотных кластеров.
Синтаксис команды
apply dbscan
[min_pts=<min_pts>]
[eps=<eps>]
from <features>
Обязательные параметры:
- features — список полей, для которых требуется найти кластеры. Список
задается перечислением, например:
from field1 field2
.
Опциональные параметры:
- min_pts - минимальное количество соседей точки, чтобы она могла считаться центром кластера, задается целым положительным числом. Значение по умолчанию
min_pts=5
. - eps - максимальное расстояние между точками, чтобы они считались соседями внутри одного кластера, задается положительным дробным числом. Значение по умолчанию
eps=10.0
.
Пример использования
На демонстрационных данных с параметрами работы добывающих нефтяных скважин определим наличие аномалий в данных.
Текст запроса
| fsget path=demo_train
| sample 0.1
| fields day, well, p_plast, p_collector, density, dynamic_level, engine_freq, pump_depth, active_power, water_percent, pump_on_off, debit
| where engine_freq>40 AND engine_freq<60
| apply dbscan from p_plast, p_collector, debit
| head 100
| fields - dbscan
Описание запроса
- Команда
fsget
загружает данные из хранилища признаков. - Команда
sample 0.1
оставляет 10% от всех загруженных строк. Это сделано для ускорения обучения (всего в обучающей выборке более 40 000 строк). - Команда
fields
оставляет только поля с меткой времени, номером скважины, величиной добычи и поля, по которым будет проводиться обучение. - Команда
where
оставляет только те строки, где значение поляengine_freq
находится в диапазоне от 40 до 60 (в этом поле указана частота работы погружного насоса, качающего нефть; она может быть только в этом диапазоне, остальные значения - ошибочные). - Команда
apply
применяет алгоритм DBSCAN к указанным полям. - Команда
head 100
выводит первые 100 строк таблицы после обучения.
Результат запроса
После выполнения запроса будет создана дополнительная колонка cluster
, в которой будет записан результат распределения по кластерам.
В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.