IQR
Алгоритм используется для определения аномалий в данных.
IQR
- это мера статистической дисперсии, равная разнице между 75-м и 25-м процентилями, IQR = Q3-Q1.
Имеется возможность задавать другие перцентили в качестве межквартильного диапазона.
Синтаксис команды
apply iqr
[range=<range>]
[with_centering=<with_centering>]
[with_scaling=<with_scaling>]
from <features>
Обязательные параметры:
- features — список полей, для которых требуется подсчитать
IQR
. Список задается перечислением, например: from field1 field2
Опциональные параметры:
- with_centering - флаг для центровки данных относительно 50-го перцентиля, или Q2, перед масштабированием, задается строкой “true” / ”false”. Значение по умолчанию
with_centering=true
. - with_scaling - флаг масштабирования данных относительно межквартильного диапазона, задается строкой “true” / ”false”. Значение по умолчанию
with_scaling=true
. range - значения перцентилей для задания диапазона масштабирования, задаются дробными значениями в диапазоне [0; 1] через запятую. Значения по умолчанию [0.25; 0.75].
Пример использования
На демонстрационных данных с параметрами работы добывающих нефтяных скважин определим наличие аномалий в данных.
Текст запроса
| 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 iqr from debit
| fields - iqr
| head 100
Описание запроса
- Команда
fsget
загружает данные из хранилища признаков. - Команда
sample 0.1
оставляет 10% от всех загруженных строк. Это сделано для ускорения обучения (всего в обучающей выборке более 40 000 строк). - Команда
fields
оставляет только поля с меткой времени, номером скважины, величиной добычи и поля, по которым будет проводиться обучение. - Команда
where
оставляет только те строки, где значение поляengine_freq
находится в диапазоне от 40 до 60 (в этом поле указана частота работы погружного насоса, качающего нефть, она может быть только в этом диапазоне, остальные значения - ошибочные). - Команда
apply
применяет алгоритм к указанным полям. - Команда
head
100 выводит первые 100 строк таблицы после обучения.
Результат запроса
После выполнения запроса будет создана дополнительная колонка iqr_debit
, в которой будет записан результат работы алгоритма.
В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.