tf.raw_ops.BoostedTreesCalculateBestFeatureSplit
Вычисляет приросты для каждого признака и возвращает наилучшую возможную информацию о разделении для признака.
tf.raw_ops.BoostedTreesCalculateBestFeatureSplit(
node_id_range,
stats_summary,
l1,
l2,
tree_complexity,
min_node_weight,
logits_dimension,
split_type='inequality',
name=None
)
Информация о разделении включает наилучший порог (идентификатор корзины), приросты и вклады левого/правого узлов для каждого узла и каждого признака.
Некоторые узлы могут быть недоступны для разделения по каждому признаку. Поэтому список возможных узлов для разных признаков может различаться. В связи с этим для каждого признака возвращается node_ids_list, содержащий список узлов, которые можно разделить с помощью этого признака.
Таким образом, на выходе получаем наилучшее разделение для каждого признака и каждого узла; впоследствии его необходимо объединить, чтобы получить наилучшее разделение для каждого узла (среди всех возможных признаков).
Формы выходных данных совместимы: первое измерение всех тензоров одинаково и соответствует числу возможных узлов разделения для каждого признака.
| Аргументы | |
|---|---|
node_id_range | Tensor типа int32. Тензор ранга 1 (shape=[2]), задающий диапазон [first, last) идентификаторов узлов для обработки в stats_summary_list. Перебор узлов выполняется между двумя узлами, указанными в тензоре, как в for node_id in range(node_id_range[0], node_id_range[1]) (обратите внимание, что последний индекс node_id_range[1] не включается в диапазон). |
stats_summary | Tensor типа float32. Тензор ранга 4 (#shape=[max_splits, feature_dims, bucket, stats_dims]) со сводной статистикой накопленных значений (градиент/гессиан) для каждого узла, каждого измерения и каждой корзины для каждого признака. Первое измерение тензора соответствует максимальному числу разделений, поэтому будут использоваться не все его элементы, а только индексы, указанные в node_ids. |
l1 | Tensor типа float32. Коэффициент регуляризации l1 для весов листьев, рассчитанный на экземпляр. |
l2 | Tensor типа float32. Коэффициент регуляризации l2 для весов листьев, рассчитанный на экземпляр. |
tree_complexity | Tensor типа float32. Поправка к приросту, рассчитанная на лист. |
min_node_weight | Tensor типа float32. Минимальное среднее значение гессианов в узле, необходимое для рассмотрения узла как кандидата на разделение. |
logits_dimension | int со значением >= 1. Размерность логита, то есть число классов. |
split_type | Необязательный string из: "inequality", "equality". По умолчанию — "inequality". Строка, указывающая, следует ли этой операции выполнять разделение по неравенству или разделение по равенству. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Кортеж объектов Tensor (node_ids, gains, feature_dimensions, thresholds, left_node_contribs, right_node_contribs, split_with_default_directions). | |
node_ids | Tensor типа int32. |
gains | Tensor типа float32. |
feature_dimensions | Tensor типа int32. |
thresholds | Tensor типа int32. |
left_node_contribs | Tensor типа float32. |
right_node_contribs | Tensor типа float32. |
split_with_default_directions | Tensor типа string. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/BoostedTreesCalculateBestFeatureSplit