tf.raw_ops.BoostedTreesCalculateBestFeatureSplitV2
Вычисляет выигрыши для каждого признака и возвращает информацию о наилучшем возможном разбиении для каждого узла. Однако, если разбиение не найдено, то информация о разбиении для этого узла не возвращается.
tf.raw_ops.BoostedTreesCalculateBestFeatureSplitV2(
node_id_range,
stats_summaries_list,
split_types,
candidate_feature_ids,
l1,
l2,
tree_complexity,
min_node_weight,
logits_dimension,
name=None
)
Информация о разбиении — это наилучший порог (идентификатор ведра), выигрыши и вклады узлов слева/справа для каждого узла по каждому признаку.
Возможно, что не все узлы могут быть разделены по каждому признаку. Следовательно, список возможных узлов может отличаться между признаками. Поэтому мы возвращаем node_ids_list для каждого признака, содержащий список узлов, которые могут быть использованы для разбиения этим признаком.
Таким образом, результат — наилучшее разбиение по признакам и узлам, поэтому его необходимо объединить позже для получения наилучшего разбиения для каждого узла (среди всех возможных признаков).
Формы выходных данных совместимы таким образом, что первое измерение всех тензоров одинаково и равно числу возможных узлов разбиения для каждого признака.
| Аргументы | |
|---|---|
node_id_range | A Tensor типа int32. Тензор ранга 1 (форма=[2]) для указания диапазона [первый, последний) идентификаторов узлов для обработки внутри stats_summary_list. Узлы итерируются между двумя узлами, указанными в тензоре, как в for node_id in range(node_id_range[0], node_id_range[1]) (Обратите внимание, что последний индекс node_id_range[1] исключается). |
stats_summaries_list | Список из как минимум 1 Tensor объекта типа float32. Список тензоров ранга 4 (#форма=[max_splits, feature_dims, bucket, stats_dims]) для суммарной статистики накопленной (градиент/гессиан) по узлу, по размерности, по ведрам для каждого признака. Первое измерение тензора — максимальное количество разбиений, и поэтому не все элементы будут использоваться, но будут использоваться только индексы, указанные node_ids. |
split_types | A Tensor типа string. Тензор ранга 1, указывающий, должен ли этот оператор выполнять неравное разбиение или равное разбиение по признакам. |
candidate_feature_ids | A Tensor типа int32. Тензор ранга 1 с идентификаторами для каждого признака. Это реальный идентификатор признака. |
l1 | A Tensor типа float32. Коэффициент регуляризации l1 для весов листьев, на основе каждой сущности. |
l2 | A Tensor типа float32. Коэффициент регуляризации l2 для весов листьев, на основе каждой сущности. |
tree_complexity | A Tensor типа float32. Корректировка выигрыша на основе каждого листа. |
min_node_weight | A Tensor типа float32. Минимальное среднее значение гессианов в узле, необходимое для того, чтобы узел рассматривался для разбиения. |
logits_dimension | A int, который является >= 1. Размерность логита, т. е. количество классов. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Кортеж объектов Tensor (node_ids, gains, feature_ids, feature_dimensions, thresholds, left_node_contribs, right_node_contribs, split_with_default_directions). | |
node_ids | A Tensor типа int32. |
gains | A Tensor типа float32. |
feature_ids | A Tensor типа int32. |
feature_dimensions | A Tensor типа int32. |
thresholds | A Tensor типа int32. |
left_node_contribs | A Tensor типа float32. |
right_node_contribs | A Tensor типа float32. |
split_with_default_directions | A 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/versions/r2.9/api_docs/python/tf/raw_ops/BoostedTreesCalculateBestFeatureSplitV2