Градиентный бустинг
Расширение gradient_boosting_regression
команды-контейнера fit
выполняет
обучение алгоритма градиентного бустинга для решения задачи регрессии.
Градиентный бустинг — алгоритм, в основе которого лежит построение множества
решающих деревьев, каждое из которых улучшает результат предыдущего.
Прогнозное значение помещается в новое поле таблицы.
Синтаксис команды
fit [gradient_boosting_regression | gb_regression | gb_r]
[maxDepth=<maxDepth>]
[learningRate=<learningRate>]
[iterationSubsample=<iterationSubsample>]
[minInfoGain=<minInfoGain>]
[minLeafSamples=<minLeafSamples>]
[numTrees=<numTrees>]
[maxBins=<maxBins>]
[subsetStrategy=<auto|all|onethird|sqrt|log2>]
[lossType=<squared|absolute>]
<targetname> from <features> [into <modelname>]
Параметры
Обязательные параметры:
- targetname — имя поля, содержащее название параметра, который требуется спрогнозировать.
- features — список полей, на основе которых требуется выполнить прогноз. Список задается через запятую, например: ... from field1, field2 ...
Опциональные параметры:
- maxDepth — максимальная глубина деревьев. Значение по умолчанию - 3
- learningRate — скорость обучения. Значение по умолчанию - 0.1
- iterationSubsample — доля данных, которые будут использованы при каждой итерации. Значение по умолчанию - 1
- minInfoGain — минимальное количество полезной информации, получаемое при разбиении классов в ветке дерева Значение по умолчанию 0.0
- minLeafSamples — минимальное количество объектов в листе дерева. Значение по умолчанию - 1
- numTrees — количество деревьев. Значение по умолчанию - 100
- maxBins — максимальное количество отрезков для дискретизации числовых признаков. Значение по умолчанию - 32
- subsetStrategy — стратегия, определяющая какая часть признаков будет
использована на каждой итерации. Возможные значения:
- auto — автоматический выбор числа признаков. Значение по умолчанию
- all — все признаки
- onethird — треть признаков
- sqrt — квадратный корень из общего числа признаков
- log2 — логарифм от общего числа признаков
- lossType — название функции потерь, которая будет использована при обучении
алгоритма. Возможные значения:
- squared — квадратичная функция потерь. Значение по умолчанию.
- absolute — абсолютная функция потерь.
- modelname — название модели, с которым она будет сохранена в кэше. Чтобы сохранить модель в постоянное хранилище моделей для дальнейшего использования, используйте команду save.
Пример использования
На демонстрационных данных с параметрами работы добывающих нефтяных скважин спрогнозируем суточную добычу в зависимости от параметров работы скважины.
Текст запроса
| 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
| fit gbr maxDepth=2 learning_rate=0.05 iterationSubsample=0.5 minLeafSamples=2 numTrees=50 maxBins=16 subsetStrategy=sqrt lossType=absolute debit from p_plast, p_collector, density, dynamic_level, engine_freq, pump_depth, active_power, water_percent, pump_on_off into gbr_model
| head 100
Описание запроса
- Команда
fsget
загружает данные из хранилища признаков. - Команда
sample 0.1
оставляет 10% от всех загруженных строк. Это сделано для ускорения обучения (всего в обучающей выборке более 40 000 строк). - Команда
fields
оставляет только поля с меткой времени, номером скважины, величиной добычи и поля, по которым будет проводиться обучение. - Команда
where
оставляет только те строки, где значение поляengine_freq
находится в диапазоне от 40 до 60 (в этом поле указана частота работы погружного насоса, качающего нефть; она может быть только в этом диапазоне, остальные значения - ошибочные). - Команда
fit
выполняет обучение модели градиентного бустинга (gbr
) и временно сохраняет модель под названиемgbr_model
. - Команда
head 100
выводит первые 100 строк таблицы после обучения.
Результат запроса
После выполнения запроса будет создана дополнительная колонка
gbr_model_prediction
, в которой будет записан результат прогноза модели на
обучающей выборке.
В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.