Calcula os ganhos de cada recurso e retorna as melhores informações de divisão possíveis para o recurso.
As informações de divisão são o melhor limite (id do intervalo), ganhos e contribuições de nó esquerdo / direito por nó para cada recurso.
É possível que nem todos os nós possam ser divididos em cada recurso. Portanto, a lista de nós possíveis pode diferir entre os recursos. Portanto, retornamos `node_ids_list` para cada recurso, contendo a lista de nós que este recurso pode ser usado para dividir.
Dessa forma, a saída é a melhor divisão por recursos e por nó, de modo que precisa ser combinada posteriormente para produzir a melhor divisão para cada nó (entre todos os recursos possíveis).
O comprimento das listas de saída são todos do mesmo comprimento, `num_features`. As formas de saída são compatíveis de forma que a primeira dimensão de todos os tensores de todas as listas seja a mesma e igual ao número de nós de divisão possíveis para cada recurso.
Métodos Públicos
estática BoostedTreesCalculateBestGainsPerFeature | criar ( Scope escopo, Operando <Integer> nodeIdRange, Iterable < Operando <Float >> statsSummaryList, Operando <float> L1, Operando <float> l2, Operando <float> treeComplexity, Operando <float> minNodeWeight, maxSplits Long) Método de fábrica para criar uma classe que envolve uma nova operação BoostedTreesCalculateBestGainsPerFeature. |
List < Output <Float >> | gainsList () Uma lista de saída de tensores Rank 1 indicando os melhores ganhos para cada recurso a ser dividido para determinados nós. |
List < Output <Float >> | leftNodeContribsList () Uma lista de tensores Rank 2 indicando a contribuição dos nós esquerdos ao ramificar de nós pais (dado pelo elemento tensor na saída node_ids_list) para a direção esquerda pelo limite fornecido para cada recurso. |
List < Output <Integer >> | nodeIdsList () Uma lista de saída de tensores Rank 1 indicando possíveis ids de nós divididos para cada recurso. |
List < Output <Float >> | rightNodeContribsList () Uma lista de tensores de Rank 2, com a mesma forma / condições que left_node_contribs_list, mas apenas que o valor é para o nó direito. |
List < Output <Integer >> | thresholdsList () Uma lista de saída de tensores de Rank 1 indicando a id do intervalo para comparação (como um limite) para divisão em cada nó. |
Métodos herdados
Métodos Públicos
public static BoostedTreesCalculateBestGainsPerFeature criar ( Scope escopo, Operando <Integer> nodeIdRange, Iterable < Operando <Float >> statsSummaryList, Operando <float> L1, Operando <float> l2, Operando <float> treeComplexity, Operando <float> minNodeWeight, maxSplits Long)
Método de fábrica para criar uma classe que envolve uma nova operação BoostedTreesCalculateBestGainsPerFeature.
Parâmetros
alcance | escopo atual |
---|---|
nodeIdRange | Um tensor Rank 1 (forma = [2]) para especificar o intervalo [primeiro, último) de ids de nós a serem processados em `stats_summary_list`. Os nós são iterados entre os dois nós especificados pelo tensor, como `para node_id no intervalo (node_id_range [0], node_id_range [1])` (Observe que o último índice node_id_range [1] é exclusivo). |
statsSummaryList | Uma lista de tensores Rank 3 (# shape = [max_splits, bucket, 2]) para resumo de estatísticas acumuladas (gradiente / hessian) por nó por bucket para cada recurso. A primeira dimensão do tensor é o número máximo de divisões e, portanto, nem todos os elementos dele serão usados, mas apenas os índices especificados por node_ids serão usados. |
l1 | l1 fator de regularização nos pesos das folhas, por instância com base. |
12 | l2 fator de regularização nos pesos das folhas, por instância com base. |
treeComplexity | ajuste ao ganho, por folha. |
minNodeWeight | média mínima de hessianos em um nó antes do necessário para que o nó seja considerado para divisão. |
maxSplits | o número de nós que podem ser divididos em toda a árvore. Usado como uma dimensão de tensores de saída. |
Devoluções
- uma nova instância de BoostedTreesCalculateBestGainsPerFeature
Lista pública < Output <Float >> gainsList ()
Uma lista de saída de tensores Rank 1 indicando os melhores ganhos para cada recurso a ser dividido para determinados nós. Veja acima para detalhes como formas e tamanhos.
Lista pública < Output <Float >> leftNodeContribsList ()
Uma lista de tensores Rank 2 indicando a contribuição dos nós esquerdos ao ramificar de nós pais (dado pelo elemento tensor na saída node_ids_list) para a direção esquerda pelo limite fornecido para cada recurso. Este valor será usado para fazer o valor do nó esquerdo adicionando ao valor do nó pai. O tamanho da segunda dimensão é 1 para logits unidimensionais, mas seria maior para problemas de várias classes. Veja acima para detalhes como formas e tamanhos.
Lista pública < Output <Integer >> nodeIdsList ()
Uma lista de saída de tensores Rank 1 indicando possíveis ids de nós divididos para cada recurso. O comprimento da lista é num_features, mas cada tensor tem um tamanho diferente, pois cada recurso fornece diferentes nós possíveis. Veja acima para detalhes como formas e tamanhos.
Lista pública < Output <Float >> rightNodeContribsList ()
Uma lista de tensores de Rank 2, com a mesma forma / condições que left_node_contribs_list, mas apenas que o valor é para o nó direito.
Lista pública < Output <Integer >> thresholdsList ()
Uma lista de saída de tensores Rank 1 indicando a id do intervalo para comparação (como um limite) para divisão em cada nó. Veja acima para detalhes como formas e tamanhos.