Перейти к содержанию

Градиентный бустинг

Расширение gradient_boosting_classification команды-контейнера fit выполняет обучение алгоритма градиентного бустинга для решения задачи классификации объектов. Градиентный бустинг — алгоритм, в основе которого лежит построение множества решающих деревьев, каждое из которых улучшает результат предыдущего. Прогнозное значение класса помещается в новое поле таблицы.

Синтаксис команды

fit [gradient_boosting_classification | gb_classification | gb_c]   
    [maxDepth=<maxDepth>] 
    [learningRate=<learningRate>] 
    [iterationSubsample=<iterationSubsample>] 
    [minInfoGain=<minInfoGain>] 
    [minLeafSamples=<minLeafSamples>] 
    [numTrees=<numTrees>] 
    [maxBins=<maxBins>] 
<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
  • modelname — название модели, с которым она будет сохранена в кэше. Чтобы сохранить модель в постоянное хранилище моделей для дальнейшего использования, используйте команду save.

Пример использования

На демонстрационных данных с параметрами работы электрической сети спрогнозируем ее стабильность в зависимости от параметров работы сети(потребляемой и производимой мощности, коэффициента стабильности сети и длительности переходного процесса в сети, отражающего характер нагрузки).

Текст запроса

| fsget path=demo_electrical_grid
| sample 0.1
| eval stabf_1 = if (stabf="stable", 1, 0)
| fields tau1, tau2, tau3, tau4, p1, p2, p3, p4, stab, stabf_1
| fit gb_c maxDepth=2 learning_rate=0.05 iterationSubsample=0.5 minLeafSamples=2 numTrees=50 maxBins=16 subsetStrategy=sqrt lossType=absolute stabf_1 reg=ridge reg_param=0.1 from tau1, tau2, tau3, tau4, p1, p2, p3, p4, stab into gbc_model
| head 100

Описание запроса

  • Команда fsget загружает данные из хранилища признаков.
  • Команда sample 0.1 оставляет 10% от всех загруженных строк. Это сделано для ускорения обучения (всего в обучающей выборке 10 000 строк).
  • Команда eval вычисляет выражение и помещает полученное значение в поле результатов поиска; условная функция if присваивает новому полю значение 1, если значение поля stabf="stuble", в противном случае присваивается 0.
  • Команда fields оставляет только поля с длительностью переходного процесса (tau1, tau2, tau3, tau4), потребляемой и производимой мощностью(p1, p2, p3, p4), коэффициент стабильности (stab), по которым будет проводиться обучение.
  • Команда fit выполняет обучение модели градиентного бустнига и временно сохраняет модель под названием gbc_model.
  • Команда head 100 выводит первые 100 строк таблицы после обучения.

Результат запроса

После выполнения запроса будет создана дополнительная колонка gbc_model_prediction, в которой будет записан результат прогноза модели на обучающей выборке. В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.

gradient_busting

К началу