Вычисляет выигрыш для каждой функции и возвращает наилучшую возможную информацию о разбиении для этой функции.
Информация о разделении представляет собой лучший порог (идентификатор сегмента), приросты и вклады левого/правого узла на узел для каждого объекта.
Возможно, не все узлы можно разделить по каждому признаку. Следовательно, список возможных узлов может различаться в зависимости от объекта. Поэтому мы возвращаем node_ids_list для каждого объекта, содержащий список узлов, для разделения которых можно использовать этот объект.
Таким образом, выходные данные представляют собой наилучшее разделение по объектам и узлам, поэтому их необходимо объединить позже, чтобы получить наилучшее разделение для каждого узла (среди всех возможных функций).
Выходные формы совместимы таким образом, что первое измерение всех тензоров одинаково и равно количеству возможных узлов разделения для каждого объекта.
Вложенные классы
сорт | BoostedTreesCalculateBestFeatureSplit.Options | Дополнительные атрибуты для BoostedTreesCalculateBestFeatureSplit |
Публичные методы
static BoostedTreesCalculateBestFeatureSplit | create ( Область видимости , Операнд <Integer> nodeIdRange, Операнд <Float> statsSummary, Операнд <Float> l1, Операнд <Float> l2, Операнд <Float> TreeComplexity, Операнд <Float> minNodeWeight, Long logitsDimension, Опции... опции) Фабричный метод для создания класса, обертывающего новую операцию BoostedTreesCalculateBestFeatureSplit. |
Вывод <Целое число> | функцияРазмеры () Тензоры ранга 1, указывающие наилучшее измерение объекта для каждого объекта, который можно разделить на определенные узлы, если объект является многомерным. |
Выход <С плавающей запятой> | прибыль () Тензоры ранга 1, указывающие наилучший выигрыш для каждого признака для разделения на определенные узлы. |
Выход <С плавающей запятой> | левыйNodeContribs () Тензоры ранга 2, указывающие вклад левых узлов при разветвлении от родительских узлов (задаваемых элементом тензора в выходном node_ids_list) влево по заданному порогу для каждого объекта. |
Вывод <Целое число> | идентификаторы узлов () Тензоры ранга 1, указывающие возможные идентификаторы узлов разделения для каждого объекта. |
Выход <С плавающей запятой> | rightNodeContribs () Тензоры ранга 2 с той же формой/условиями, что и left_node_contribs_list, но значением является только правый узел. |
статический BoostedTreesCalculateBestFeatureSplit.Options | SplitType (строка SplitType) |
Вывод <Строка> | сплитвисдефолтдиректионс () Тензоры ранга 1, указывающие, в каком направлении двигаться, если данные отсутствуют. |
Вывод <Целое число> | пороги () Тензоры ранга 1, указывающие идентификатор сегмента для сравнения (в качестве порога) для разделения в каждом узле. |
Унаследованные методы
Публичные методы
public static BoostedTreesCalculateBestFeatureSplit create ( Область действия, Операнд <Integer> nodeIdRange, Операнд <Float> statsSummary, Операнд <Float> l1, Операнд <Float> l2, Операнд <Float> TreeComplexity, Операнд <Float> minNodeWeight, Long logitsDimension, Параметры.. . параметры)
Фабричный метод для создания класса, обертывающего новую операцию BoostedTreesCalculateBestFeatureSplit.
Параметры
объем | текущий объем |
---|---|
узелидранже | Тензор ранга 1 (shape=[2]) для указания диапазона [первый, последний) идентификаторов узлов для обработки в `stats_summary_list`. Узлы перебираются между двумя узлами, указанными тензором, как например `for node_id в диапазоне(node_id_range[0], node_id_range[1])` (обратите внимание, что последний индекс node_id_range[1] является исключительным). |
статистикаСводка | Тензор ранга 4 (#shape=[max_splits, Feature_dims, Bucket, stats_dims]) для сводки накопленной статистики (градиент/гессиан) для каждого узла, для каждого измерения, для каждого сегмента для каждого объекта. Первое измерение тензора — это максимальное количество разбиений, поэтому будут использоваться не все его элементы, а только индексы, указанные node_ids. |
л1 | Коэффициент регуляризации l1 для весов листьев, в зависимости от экземпляра. |
л2 | Коэффициент регуляризации l2 для весов листьев, в зависимости от экземпляра. |
деревоСложность | регулировка усиления на основе листа. |
minNodeWeight | минимальное среднее количество гессианов в узле, необходимое для того, чтобы узел можно было рассматривать для разделения. |
логитыразмерность | Размерность логита, т. е. количества классов. |
параметры | содержит значения необязательных атрибутов |
Возврат
- новый экземпляр BoostedTreesCalculateBestFeatureSplit
публичный вывод <Integer> FeatureDimensions ()
Тензоры ранга 1, указывающие наилучшее измерение объекта для каждого объекта, который можно разделить на определенные узлы, если объект является многомерным. Подробную информацию о формах и размерах см. выше.
public Output <Float> прирост ()
Тензоры ранга 1, указывающие наилучший выигрыш для каждого признака для разделения на определенные узлы. Подробную информацию о формах и размерах см. выше.
публичный вывод <Float> leftNodeContribs ()
Тензоры ранга 2, указывающие вклад левых узлов при разветвлении от родительских узлов (задаваемых элементом тензора в выходном node_ids_list) влево по заданному порогу для каждого объекта. Это значение будет использоваться для создания значения левого узла путем добавления к значению родительского узла. Размер второго измерения равен 1 для одномерных логитов, но будет больше для задач с несколькими классами. Подробную информацию о формах и размерах см. выше.
общедоступный вывод <Integer> nodeIds ()
Тензоры ранга 1, указывающие возможные идентификаторы узлов разделения для каждого объекта. Длина списка — num_features, но каждый тензор имеет разный размер, поскольку каждый объект предоставляет разные возможные узлы. Подробную информацию о формах и размерах см. выше.
публичный вывод <Float> rightNodeContribs ()
Тензоры ранга 2 с той же формой/условиями, что и left_node_contribs_list, но значением является только правый узел.
общедоступный статический BoostedTreesCalculateBestFeatureSplit.Options SplitType (String SplitType)
Параметры
тип разделения | Строка, указывающая, должна ли эта операция выполнять разделение по неравенству или разделение по равенству. |
---|
общедоступный вывод <String> SplitWithDefaultDirections ()
Тензоры ранга 1, указывающие, в каком направлении двигаться, если данные отсутствуют. Подробную информацию о формах и размерах см. выше. Неравенство с левым по умолчанию возвращает 0, неравенство с правым по умолчанию возвращает 1, равенство с правым по умолчанию возвращает 2.
общедоступные пороговые значения вывода <Integer> ()
Тензоры ранга 1, указывающие идентификатор сегмента для сравнения (в качестве порога) для разделения в каждом узле. Подробную информацию о формах и размерах см. выше.