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]) для указания диапазона [начало, конец) идентификаторов узлов для обработки в пределах 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 который >= 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. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/raw_ops/BoostedTreesCalculateBestFeatureSplit