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 | A Tensor типа int32. Тензор ранга 1 (формат=[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 | A Tensor типа float32. Тензор ранга 4 (#формат=[max_splits, feature_dims, bucket, stats_dims]) для сводки накопленных статистических данных (градиент/гессиан) на узел, по измерениям, по ведрам для каждого признака. Первое измерение тензора — максимальное количество разбиений, и поэтому не все его элементы будут использоваться, но будут использоваться только индексы, указанные в node_ids. |
l1 | A Tensor типа float32. Коэффициент регуляризации l1 для весов листа, на основе экземпляра. |
l2 | A Tensor типа float32. Коэффициент регуляризации l2 для весов листа, на основе экземпляра. |
tree_complexity | A Tensor типа float32. Коррекция прироста, на основе листа. |
min_node_weight | A Tensor типа float32. Минимальное среднее значение гессиана в узле, необходимое для того, чтобы узел считался подходящим для разбиения. |
logits_dimension | An int, which is >= 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 | A Tensor типа int32. |
gains | A Tensor типа float32. |
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/api_docs/python/tf/raw_ops/BoostedTreesCalculateBestFeatureSplit