Calcula ganhos para cada recurso e retorna as melhores informações de divisão possíveis para o recurso.
A informação de divisão é o melhor limite (bucket id), 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 esse 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 tamanho das listas de saída são todos do mesmo tamanho, `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
static BoostedTreesCalculeBestGainsPerFeature | create ( Escopo do escopo, Operando <Integer> nodeIdRange, Iterable< Operando <Float>> statsSummaryList, Operando <Float> l1, Operando <Float> l2, Operando <Float> treeComplexity, Operando <Float> minNodeWeight, Long maxSplits) Método de fábrica para criar uma classe que envolve uma nova operação BoostedTreesCalculateBestGainsPerFeature. |
Lista< Saída <Float>> | lista de ganhos () Uma lista de saída de tensores de Rank 1 indicando os melhores ganhos para cada recurso a ser dividido para determinados nós. |
Lista< Saída <Float>> | leftNodeContribsList () Uma lista de tensores de Rank 2 indicando a contribuição dos nós esquerdos ao ramificar dos nós pais (dados pelo elemento tensor na saída node_ids_list) para a direção esquerda pelo limite fornecido para cada recurso. |
Lista< Saída <Inteiro>> | nodeIdsList () Uma lista de saída de tensores Rank 1 indicando possíveis IDs de nós divididos para cada recurso. |
Lista< Saída <Float>> | rightNodeContribsList () Uma lista de tensores Rank 2, com a mesma forma/condições que left_node_contribs_list, mas apenas que o valor é para o nó direito. |
Lista< Saída <Inteiro>> | lista de limites () Uma lista de saída de tensores Rank 1 indicando o ID do bucket para comparar (como um limite) para divisão em cada nó. |
Métodos Herdados
Métodos públicos
public static BoostedTreesCalculateBestGainsPerFeature create ( Escopo do escopo, Operando <Integer> nodeIdRange, Iterable< Operando <Float>> statsSummaryList, Operando <Float> l1, Operando <Float> l2, Operando <Float> treeComplexity, Operando <Float> minNodeWeight, Long maxSplits)
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 (shape=[2]) para especificar o intervalo [primeiro, último) de ids de nó para processar dentro de `stats_summary_list`. Os nós são iterados entre os dois nós especificados pelo tensor, como `for node_id in range(node_id_range[0], node_id_range[1])` (Observe que o último índice node_id_range[1] é exclusivo). |
statsResumoLista | Uma lista de tensores Rank 3 (#shape=[max_splits, bucket, 2]) para resumo de estatísticas acumuladas (gradiente/hessian) por nó por buckets 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 em pesos de folha, por instância. |
l2 | l2 fator de regularização em pesos de folha, por instância. |
treeComplexidade | ajuste ao ganho, por folha. |
minNodeWeight | média mínima de hessianos em um nó antes de ser 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
public List< Saída <Float>> ganhosList ()
Uma lista de saída de tensores de Rank 1 indicando os melhores ganhos para cada recurso a ser dividido para determinados nós. Veja acima para detalhes como formas e tamanhos.
public List< Saída <Float>> leftNodeContribsList ()
Uma lista de tensores de Rank 2 indicando a contribuição dos nós esquerdos ao ramificar dos nós pais (dados pelo elemento tensor na saída node_ids_list) para a direção esquerda pelo limite fornecido para cada recurso. Esse valor será usado para criar 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 multiclasse. Veja acima para detalhes como formas e tamanhos.
public List< 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.
public List< Output <Float>> rightNodeContribsList ()
Uma lista de tensores Rank 2, com a mesma forma/condições que left_node_contribs_list, mas apenas que o valor é para o nó direito.
public List< Output <Integer>> thresholdsList ()
Uma lista de saída de tensores Rank 1 indicando o ID do bucket para comparar (como um limite) para divisão em cada nó. Veja acima para detalhes como formas e tamanhos.