заставляя столбец быть первичным разделенным столбцом в RandomForest - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть данные для различных институтов, так что одни институты предоставляют нам больше полей, чем другие.Эти дополнительные поля данных, кажется, имеют высокую корреляцию с двоичным результатом, который мы пытаемся предсказать, поэтому игнорирование их не вариант.Кроме того, мы не хотим создавать конкретные модели института.

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

Как мы можем заставить функцию быть основной функцией разделения?

1 Ответ

0 голосов
/ 17 ноября 2018

Это не то, что вы можете сделать с помощью алгоритма на основе дерева H2O, и эти алгоритмы не предназначены для того, чтобы пользователь мог решить, на какую функцию делиться - это то, что алгоритм определит для вас.

Из руководства пользователя H2O-3:

Как DRF решает, на какую функцию делиться? Она разбивается на столбец и уровень, что приводит к наибольшему уменьшению остаточной суммы квадратов (RSS) в поддереве на данный момент.Он учитывает все поля, доступные из алгоритма.Обратите внимание, что любое использование выборки столбцов и выборок строк приведет к тому, что каждое решение не будет учитывать все точки данных, и что это специально для создания более устойчивых деревьев.Чтобы найти лучший уровень, процесс объединения гистограмм используется для быстрого вычисления потенциального MSE каждого возможного разделения.Количество бинов контролируется с помощью nbins_cats для категорий, пары nbins (количество бинов для построения гистограммы, затем делится на лучшую точку) и nbins_top_level (минимальное количество бинов на корневом уровне, используемое для построениягистограмма).Это число будет уменьшено в два раза на уровень.

Для nbins_top_level, более высокое = более точное, но потенциально более склонное к переоснащению.Выше также требует больше памяти и, возможно, дольше для запуска.

(то же самое относится к GBM и для рандомизированных деревьев вы можете посмотреть здесь: http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/drf.html#extremely-randomized-trees)

...