tf.raw_ops.BoostedTreesCalculateBestGainsPerFeature
Вычисляет прирост для каждого признака и возвращает наилучшие возможные параметры разбиения для признака.
tf.raw_ops.BoostedTreesCalculateBestGainsPerFeature(
node_id_range,
stats_summary_list,
l1,
l2,
tree_complexity,
min_node_weight,
max_splits,
name=None
)
Параметры разбиения — это наилучший порог (идентификатор корзины), приросты и вклады левого/правого узлов для каждого узла каждого признака.
Не все узлы можно разделить по каждому признаку. Поэтому список возможных узлов может различаться для разных признаков. В результате для каждого признака возвращается node_ids_list, содержащий список узлов, которые можно разделить с помощью этого признака.
Таким образом, на выходе получается наилучшее разбиение для каждого признака и каждого узла, которое позднее необходимо объединить, чтобы получить наилучшее разбиение для каждого узла (среди всех возможных признаков).
Длины всех выходных списков одинаковы: num_features. Формы выходных данных совместимы: первые измерения всех тензоров во всех списках совпадают и равны количеству возможных узлов разбиения для каждого признака.
| Аргументы | |
|---|---|
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_list | Список как минимум из 1 объекта Tensor типа float32. Список тензоров ранга 3 (#shape=[max_splits, bucket, 2]) со сводной статистикой (градиент/гессиан), накопленной для каждого узла и каждой корзины каждого признака. Первое измерение тензора соответствует максимальному количеству разбиений, поэтому используются не все его элементы, а только индексы, заданные параметром node_ids. |
l1 | Tensor типа float32. Коэффициент регуляризации l1 для весов листьев, рассчитываемый на экземпляр. |
l2 | Tensor типа float32. Коэффициент регуляризации l2 для весов листьев, рассчитываемый на экземпляр. |
tree_complexity | Tensor типа float32. Корректировка прироста, рассчитываемая на лист. |
min_node_weight | Tensor типа float32. Минимальное среднее значение гессианов в узле, необходимое для того, чтобы узел рассматривался для разбиения. |
max_splits | int со значением >= 1. Количество узлов, которые можно разделить во всём дереве. Используется как размерность выходных тензоров. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Кортеж из объектов Tensor (node_ids_list, gains_list, thresholds_list, left_node_contribs_list, right_node_contribs_list). | |
node_ids_list | Список той же длины, что и stats_summary_list, состоящий из объектов Tensor типа int32. |
gains_list | Список той же длины, что и stats_summary_list, состоящий из объектов Tensor типа float32. |
thresholds_list | Список той же длины, что и stats_summary_list, состоящий из объектов Tensor типа int32. |
left_node_contribs_list | Список той же длины, что и stats_summary_list, состоящий из объектов Tensor типа float32. |
right_node_contribs_list | Список той же длины, что и stats_summary_list, состоящий из объектов Tensor типа float32. |
© 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/BoostedTreesCalculateBestGainsPerFeature