BoostedTreesCalculateBestFeatureSplitV2

BoostedTreesCalculateBestFeatureSplitV2 public final class

Calcula las ganancias para cada característica y devuelve la mejor información dividida posible para cada nodo. Sin embargo, si no se encuentra ninguna división, no se devuelve información de división para ese nodo.

La información dividida es el mejor umbral (ID de depósito), ganancias y contribuciones de nodo izquierdo / derecho por nodo para cada característica.

Es posible que no todos los nodos se puedan dividir en cada función. Por lo tanto, la lista de posibles nodos puede diferir entre las características. Por lo tanto, devolvemos `node_ids_list` para cada característica, que contiene la lista de nodos que esta característica puede usarse para dividir.

De esta manera, la salida es la mejor división por características y por nodo, por lo que debe combinarse más adelante para producir la mejor división para cada nodo (entre todas las características posibles).

Las formas de salida son compatibles de tal manera que la primera dimensión de todos los tensores es la misma e igual al número de posibles nodos divididos para cada característica.

Métodos públicos

estática BoostedTreesCalculateBestFeatureSplitV2
crear ( Alcance alcance, operando <Integer> nodeIdRange, Iterable < Operando <Float >> statsSummariesList, operando <String> splitTypes, operando <Integer> candidateFeatureIds, operando <Float> L1, operando <Float> L2, operando <Float> treeComplexity, operando <Float> minNodeWeight, Long logitsDimension)
Método de fábrica para crear una clase que envuelva una nueva operación BoostedTreesCalculateBestFeatureSplitV2.
Salida <Integer>
featureDimensions ()
Tensores de rango 1 que indican la mejor dimensión de característica para que cada característica se divida para ciertos nodos si la característica es multidimensional.
Salida <Integer>
featureIds ()
Tensores de rango 1 que indican la mejor identificación de característica para cada nodo.
Salida <Float>
ganancias ()
Un tensor de rango 1 que indica las mejores ganancias para que cada característica se divida para ciertos nodos.
Salida <Float>
leftNodeContribs ()
Tensores de rango 2 que indican la contribución de los nodos izquierdos cuando se ramifican desde los nodos principales (dado por el elemento tensor en la salida node_ids_list) a la dirección izquierda por el umbral dado para cada característica.
Salida <Integer>
nodeIds ()
A Tensores de rango 1 que indican posibles ID de nodo dividido para cada característica.
Salida <Float>
rightNodeContribs ()
A Tensores de rango 2, con la misma forma / condiciones que left_node_contribs_list, pero solo que el valor es para el nodo derecho.
Salida <String>
splitWithDefaultDirections ()
A Tensores de rango 1 que indican en qué dirección ir si faltan datos.
Salida <Integer>
umbrales ()
Tensores de rango 1 que indican la identificación del depósito con la que comparar (como umbral) para la división en cada nodo.

Métodos heredados

Métodos públicos

estáticas pública BoostedTreesCalculateBestFeatureSplitV2 crean ( Alcance alcance, operando <entero> nodeIdRange, Iterable < operando <flotador >> statsSummariesList, operando <cadena> splitTypes, operando <entero> candidateFeatureIds, operando <Float> L1, operando <Float> L2, operando <Float > treeComplexity, operando <Float> minNodeWeight, Long logitsDimension)

Método de fábrica para crear una clase que envuelva una nueva operación BoostedTreesCalculateBestFeatureSplitV2.

Parámetros
alcance alcance actual
nodeIdRange Un tensor de rango 1 (forma = [2]) para especificar el rango [primero, último) de ID de nodo a procesar dentro de `stats_summary_list`. Los nodos se iteran entre los dos nodos especificados por el tensor, como `para node_id in range (node_id_range [0], node_id_range [1])` (Tenga en cuenta que el último índice node_id_range [1] es exclusivo).
statsSummariesList Una lista de tensor de rango 4 (# shape = [max_splits, feature_dims, bucket, stats_dims]) para el resumen de estadísticas acumuladas (gradiente / arpillera) por nodo, por dimensión, por cubos para cada característica. La primera dimensión del tensor es el número máximo de divisiones y, por lo tanto, no se usarán todos sus elementos, sino que solo se usarán los índices especificados por node_ids.
splitTypes Un tensor de rango 1 que indica si esta operación debe realizar una división de desigualdad o una división de igualdad por característica.
candidatoFeatureIds Tensor de rango 1 con identificadores para cada característica. Esta es la identificación real de la función.
l1 l1 factor de regularización en pesos de hojas, por instancia.
l2 l2 factor de regularización en pesos de hojas, por instancia.
treeComplejidad ajuste a la ganancia, por hoja.
minNodeWeight promedio mínimo de arpilleras en un nodo antes requerido para que el nodo sea considerado para la división.
logitsDimension La dimensión de logit, es decir, número de clases.
Devoluciones
  • una nueva instancia de BoostedTreesCalculateBestFeatureSplitV2

pública de salida <Integer> featureDimensions ()

Tensores de rango 1 que indican la mejor dimensión de característica para que cada característica se divida para ciertos nodos si la característica es multidimensional. Consulte más arriba para obtener detalles como formas y tamaños.

pública de salida <Integer> featureIds ()

Tensores de rango 1 que indican la mejor identificación de característica para cada nodo. Consulte más arriba para obtener detalles como formas y tamaños.

pública Salida <> Float ganancias ()

Un tensor de rango 1 que indica las mejores ganancias para que cada característica se divida para ciertos nodos. Consulte más arriba para obtener detalles como formas y tamaños.

pública Salida <> Float leftNodeContribs ()

Tensores de rango 2 que indican la contribución de los nodos izquierdos cuando se ramifican desde los nodos principales (dado por el elemento tensor en la salida node_ids_list) a la dirección izquierda por el umbral dado para cada característica. Este valor se utilizará para hacer el valor del nodo izquierdo agregando al valor del nodo principal. El tamaño de la segunda dimensión es 1 para logits unidimensionales, pero sería mayor para problemas de varias clases. Consulte más arriba para obtener detalles como formas y tamaños.

pública de salida <Integer> nodeIds ()

A Tensores de rango 1 que indican posibles ID de nodo dividido para cada característica. La longitud de la lista es num_features, pero cada tensor tiene un tamaño diferente ya que cada característica proporciona diferentes nodos posibles. Consulte más arriba para obtener detalles como formas y tamaños.

pública Salida <> Float rightNodeContribs ()

A Tensores de rango 2, con la misma forma / condiciones que left_node_contribs_list, pero solo que el valor es para el nodo derecho.

pública de salida <String> splitWithDefaultDirections ()

A Tensores de rango 1 que indican en qué dirección ir si faltan datos. Consulte más arriba para obtener detalles como formas y tamaños. La desigualdad con la izquierda predeterminada devuelve 0, la desigualdad con la derecha predeterminada devuelve 1, la igualdad con la derecha predeterminada devuelve 2.

pública de salida <Integer> umbrales ()

A Tensores de rango 1 que indican la identificación del depósito con la que comparar (como umbral) para la división en cada nodo. Consulte más arriba para obtener detalles como formas y tamaños.