BoostedTreesCalculateBestFeatureSplitV2

public final class BoostedTreesCalculateBestFeatureSplitV2

Calcola i guadagni per ogni caratteristica e restituisce le migliori informazioni di divisione possibili per ogni nodo. Tuttavia, se non viene trovata alcuna divisione, non vengono restituite informazioni sulla divisione per quel nodo.

Le informazioni suddivise sono la migliore soglia (bucket id), guadagni e contributi del nodo sinistro / destro per nodo per ciascuna funzionalità.

È possibile che non tutti i nodi possano essere suddivisi su ciascuna funzione. Quindi, l'elenco dei possibili nodi può differire tra le caratteristiche. Pertanto, restituiamo `node_ids_list` per ogni caratteristica, contenente l'elenco dei nodi che questa caratteristica può essere utilizzata per suddividere.

In questo modo, l'output è la migliore divisione per funzionalità e per nodo, quindi deve essere combinato in seguito per produrre la migliore divisione per ogni nodo (tra tutte le caratteristiche possibili).

Le forme di output sono compatibili in modo che la prima dimensione di tutti i tensori sia la stessa e uguale al numero di possibili nodi di divisione per ciascuna funzione.

Metodi pubblici

static BoostedTreesCalculateBestFeatureSplitV2
create ( ambito ambito, operando <Integer> nodeIdRange, Iterable < Operand <Float>> statsSummariesList, operando <String> splitTypes, operando <Integer> candidateFeatureIds, operando <Float> l1, operando <Float> l2, operando <Float> treeComplexity, Operando <Float> minNodeWeight, Long logitsDimension)
Metodo Factory per creare una classe che racchiude una nuova operazione BoostedTreesCalculateBestFeatureSplitV2.
Uscita <Integer>
featureDimensions ()
Un tensore di rango 1 che indica la migliore dimensione della feature per ciascuna feature da dividere per determinati nodi se la feature è multidimensionale.
Uscita <Integer>
featureIds ()
Un tensore di rango 1 che indica il miglior ID caratteristica per ogni nodo.
Uscita <Float>
guadagni ()
Un tensore di grado 1 che indica i migliori guadagni per ciascuna caratteristica da dividere per determinati nodi.
Uscita <Float>
leftNodeContribs ()
Un tensore di rango 2 che indica il contributo dei nodi di sinistra quando si ramifica dai nodi padre (dato dall'elemento tensore nell'output node_ids_list) alla direzione sinistra dalla soglia data per ciascuna caratteristica.
Uscita <Integer>
nodeIds ()
Un tensore di livello 1 che indica i possibili ID dei nodi divisi per ciascuna funzione.
Uscita <Float>
rightNodeContribs ()
Un tensore di rango 2, con la stessa forma / condizioni di left_node_contribs_list, ma solo che il valore è per il nodo destro.
Output <String>
splitWithDefaultDirections ()
Un tensore di rango 1 che indica la direzione in cui andare se i dati mancano.
Uscita <Integer>
soglie ()
Un tensore di rango 1 che indica l'ID del bucket da confrontare (come soglia) per la divisione in ciascun nodo.

Metodi ereditati

Metodi pubblici

public static BoostedTreesCalculateBestFeatureSplitV2 creano ( Ambito portata, operando <intero> nodeIdRange, Iterable < Operando <Float >> statsSummariesList, Operando <String> splitTypes, operando <intero> candidateFeatureIds, operando <Float> l1, operando <Float> l2, operando <Float > treeComplexity, Operando <Float> minNodeWeight, Long logitsDimension)

Metodo Factory per creare una classe che racchiude una nuova operazione BoostedTreesCalculateBestFeatureSplitV2.

Parametri
scopo ambito attuale
nodeIdRange Un tensore di rango 1 (forma = [2]) per specificare l'intervallo [primo, ultimo) di ID nodo da elaborare all'interno di `stats_summary_list`. I nodi sono iterati tra i due nodi specificati dal tensore, come `per node_id in range (node_id_range [0], node_id_range [1])` (Notare che l'ultimo indice node_id_range [1] è esclusivo).
statsSummariesList Un elenco di tensore di rango 4 (# shape = [max_splits, feature_dims, bucket, stats_dims]) per il riepilogo delle statistiche accumulate (gradiente / hessian) per nodo, per dimensione, per bucket per ogni funzionalità. La prima dimensione del tensore è il numero massimo di divisioni, quindi non verranno utilizzati tutti gli elementi di esso, ma verranno utilizzati solo gli indici specificati da node_ids.
splitTypes Un tensore di rango 1 che indica se questo op deve eseguire una divisione di disuguaglianza o una divisione di uguaglianza per caratteristica.
candidateFeatureIds Rango 1 tensore con ID per ogni caratteristica. Questo è il vero ID della funzione.
l1 l1 fattore di regolarizzazione sui pesi delle foglie, per istanza.
l2 l2 fattore di regolarizzazione sui pesi delle foglie, per istanza.
treeComplexity regolazione del guadagno, per foglia.
minNodeWeight media minima di hessian in un nodo prima richiesta per il nodo da considerare per la divisione.
logitsDimension La dimensione del logit, cioè il numero di classi.
ritorna
  • una nuova istanza di BoostedTreesCalculateBestFeatureSplitV2

public Output <Integer> featureDimensions ()

Un tensore di rango 1 che indica la migliore dimensione della feature per ciascuna feature da dividere per determinati nodi se la feature è multidimensionale. Vedi sopra per dettagli come forme e dimensioni.

public Output <Integer> featureIds ()

Un tensore di rango 1 che indica il miglior ID caratteristica per ogni nodo. Vedi sopra per dettagli come forme e dimensioni.

guadagni di output pubblici <Float> ()

Un tensore di grado 1 che indica i migliori guadagni per ciascuna caratteristica da dividere per determinati nodi. Vedi sopra per dettagli come forme e dimensioni.

output pubblico <Float> leftNodeContribs ()

Un tensore di rango 2 che indica il contributo dei nodi di sinistra quando si ramifica dai nodi padre (dato dall'elemento tensore nell'output node_ids_list) alla direzione sinistra dalla soglia data per ciascuna caratteristica. Questo valore verrà utilizzato per creare il valore del nodo sinistro aggiungendolo al valore del nodo padre. La dimensione della seconda dimensione è 1 per i logit unidimensionali, ma sarebbe maggiore per i problemi multi-classe. Vedi sopra per dettagli come forme e dimensioni.

output pubblico <Integer> nodeIds ()

Un tensore di livello 1 che indica i possibili ID dei nodi divisi per ciascuna funzione. La lunghezza dell'elenco è num_features, ma ogni tensore ha dimensioni diverse poiché ogni caratteristica fornisce diversi nodi possibili. Vedi sopra per dettagli come forme e dimensioni.

output pubblico <Float> rightNodeContribs ()

Un tensore di rango 2, con la stessa forma / condizioni di left_node_contribs_list, ma solo che il valore è per il nodo destro.

output pubblico <String> splitWithDefaultDirections ()

Un tensore di rango 1 che indica la direzione in cui andare se i dati mancano. Vedi sopra per dettagli come forme e dimensioni. La disuguaglianza con il valore predefinito a sinistra restituisce 0, la disuguaglianza con il valore predefinito a destra restituisce 1, l'uguaglianza con il valore predefinito a destra restituisce 2.

public Output <Integer> soglie ()

Un tensore di rango 1 che indica l'ID del bucket da confrontare (come soglia) per la divisione in ciascun nodo. Vedi sopra per dettagli come forme e dimensioni.