Случайный лес
Расширение random_forest_classification
команды-контейнера fit
выполняет обучение алгоритма случайного леса для решения задачи классификации объектов.
Случайный лес — алгоритм, в основе которого лежит построение множества решающих деревьев и усреднение их ответов.
Прогнозное значение класса помещается в новое поле таблицы.
Синтаксис команды
fit <random_forest_classification | rf_classification | rf_c>
[maxDepth=<maxDepth>]
[iterationSubsample=<iterationSubsample>]
[minInfoGain=<minInfoGain>]
[minLeafSamples=<minLeafSamples>]
[numTrees=<numTrees>]
[maxBins=<maxBins>]
[subsetStrategy=<auto|all|onethird|sqrt|log2>]
[impurity=<gini|entropy>]
<targetname> from <features> [into <modelname>]
Обязательные параметры:
- targetname — имя поля, содержащее название класса, к которому относится данная строка датасета. Эту метку класса требуется спрогнозировать(поле должно быть целочисленного типа).
- features — список полей, на основе которых требуется выполнить прогноз
класса. Список задается через запятую, например:
from field1, field2
.
Опциональные параметры:
- maxDepth — максимальная глубина деревьев. Значение по умолчанию - 3.
- iterationSubsample — доля данных, которые будут использованы при каждой итерации. Значение по умолчанию - 1.
- minInfoGain — минимальное количество полезной информации, получаемое при разбиении классов в ветке дерева Значение по умолчанию 0.0.
- minLeafSamples — минимальное количество объектов в листе дерева. Значение по умолчанию - 1
- numTrees — количество деревьев Значение по умолчанию - 100
- maxBins — максимальное количество отрезков для дискретизации числовых признаков. Значение по умолчанию -32
- subsetStrategy — стратегия, определяющая какая часть признаков будет использована на каждой итерации. Возможные значения:
- auto — автоматический выбор числа признаков (значение по умолчанию)
- all — все признаки
- onethird — треть признаков
- sqrt — квадратный корень из общего числа признаков
- log2 — логарифм от общего числа признаков
- impurity — критерий получения полезной информации при разбиении на ветки дерева. Возможные значения:
- gini — Джини
- entropy — энтропия (значение по умолчанию)
- 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 rf_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 rfc_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
выполняет обучение модели случайного леса и временно сохраняет модель под названиемrfc_model
. - Команда
head 100
выводит первые 100 строк таблицы после обучения.
Результат запроса
После выполнения запроса будет создана дополнительная колонка probabilities
, в которой будет записан результат прогноза модели на обучающей выборке.
В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.