tf.raw_ops.BoostedTreesSparseCalculateBestFeatureSplit
Вычисляет прирост для каждого признака и возвращает информацию о наилучшем возможном разбиении для признака.
tf.raw_ops.BoostedTreesSparseCalculateBestFeatureSplit(
node_id_range,
stats_summary_indices,
stats_summary_values,
stats_summary_shape,
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_indices | Tensor типа int32. Разреженный тензор int64 ранга 2 плотной формы N, 4 со сводной статистикой (градиент/гессиан) для каждого узла и каждой корзины каждого признака. Второе измерение содержит идентификатор узла, измерение признака, идентификатор корзины и размерность статистики. Размерность статистики — это сумма размерности логитов и размерности гессиана; размерность гессиана может быть равна размерности логитов, если используется диагональный гессиан, или квадрату размерности логитов, если используется полный гессиан. |
stats_summary_values | Tensor типа float32. Тензор float ранга 1 плотной формы N, содержащий значения для каждого элемента в summary_indices. |
stats_summary_shape | Tensor типа int32. Тензор float ранга 1 плотной формы [4], задающий плотную форму разреженного тензора: [num tree nodes, feature dimensions, num buckets, stats dim]. |
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". По умолчанию — "inequality". Строка, указывающая, должно ли это Op выполнять разбиение по неравенству или по равенству. |
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/BoostedTreesSparseCalculateBestFeatureSplit