Calcola i guadagni per ciascuna funzionalità e restituisce le migliori informazioni di suddivisione possibili per ciascun nodo. Tuttavia, se non viene trovata alcuna suddivisione, per quel nodo non verranno restituite informazioni sulla suddivisione.
Le informazioni suddivise rappresentano la soglia migliore (ID bucket), i guadagni e i contributi dei nodi sinistro/destro per nodo per ciascuna funzionalità.
È possibile che non tutti i nodi possano essere suddivisi su ciascuna funzionalità. Pertanto, l'elenco dei possibili nodi può differire a seconda delle funzionalità. Pertanto, restituiamo `node_ids_list` per ciascuna funzionalità, contenente l'elenco dei nodi che questa funzionalità può essere utilizzata per dividere.
In questo modo, l'output è la migliore suddivisione per funzionalità e per nodo, in modo che debba essere combinata successivamente per produrre la migliore suddivisione per ciascun nodo (tra tutte le possibili funzionalità).
Le forme di output sono compatibili in modo tale che la prima dimensione di tutti i tensori sia la stessa e uguale al numero di possibili nodi divisi per ciascuna caratteristica.
Metodi pubblici
alberi potenziati staticiCalculateBestFeatureSplitV2 | create ( Scope scope, 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) Metodo factory per creare una classe che racchiude una nuova operazione BoostedTreesCalculateBestFeatureSplitV2. |
Output <Intero> | caratteristicaDimensioni () Un tensore di grado 1 che indica la migliore dimensione della feature per ciascuna feature da dividere per determinati nodi se la feature è multidimensionale. |
Output <Intero> | IDfunzionalità () Un tensore di rango 1 che indica il miglior ID di funzionalità per ciascun nodo. |
Uscita <Mobile> | guadagni () Un tensore di grado 1 che indica i migliori guadagni per ciascuna caratteristica da dividere per determinati nodi. |
Uscita <Mobile> | leftNodeContribs () Tensori di rango 2 che indicano il contributo dei nodi di sinistra quando si diramano dai nodi principali (dato dall'elemento tensore nell'output node_ids_list) alla direzione di sinistra in base alla soglia specificata per ciascuna caratteristica. |
Output <Intero> | ID nodo () Tensori di rango 1 che indicano possibili ID di nodi suddivisi per ciascuna funzionalità. |
Uscita <Mobile> | 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. |
Uscita <Stringa> | splitWithDefaultDirections () Un tensore di rango 1 che indica la direzione da seguire se mancano i dati. |
Output <Intero> | soglie () Tensori di rango 1 che indicano l'ID del bucket con cui confrontare (come soglia) la suddivisione in ciascun nodo. |
Metodi ereditati
Metodi pubblici
public static BoostedTreesCalculateBestFeatureSplitV2 create ( Scope scope, 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)
Metodo factory per creare una classe che racchiude una nuova operazione BoostedTreesCalculateBestFeatureSplitV2.
Parametri
scopo | ambito attuale |
---|---|
nodeIdRange | Un tensore di grado 1 (shape=[2]) per specificare l'intervallo [primo, ultimo) degli ID nodo da elaborare all'interno di "stats_summary_list". I nodi vengono iterati tra i due nodi specificati dal tensore, come "for 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 tensori di grado 4 (#shape=[max_splits, feature_dims, bucket, stats_dims]) per il riepilogo delle statistiche accumulate (gradiente/iuta) per nodo, per dimensione, per bucket per ciascuna funzionalità. La prima dimensione del tensore è il numero massimo di suddivisioni, e quindi non verranno utilizzati tutti i suoi elementi, ma verranno utilizzati solo gli indici specificati da node_ids. |
splitTypes | Un tensore di grado 1 che indica se questa operazione deve eseguire la suddivisione della disuguaglianza o della suddivisione dell'uguaglianza per caratteristica. |
candidateFeatureId | Tensore di rango 1 con ID per ciascuna funzionalità. Questo è il vero ID della funzione. |
l1 | l1 fattore di regolarizzazione sui pesi delle foglie, in base all'istanza. |
l2 | fattore di regolarizzazione l2 sui pesi delle foglie, basato per istanza. |
alberoComplessità | regolazione del guadagno, in base alla foglia. |
minNodeWeight | media minima di iuta in un nodo prima di essere richiesta affinché il nodo venga considerato 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 grado 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.
output pubblico <intero> featureId ()
Un tensore di rango 1 che indica il miglior ID di funzionalità per ciascun nodo. Vedi sopra per dettagli come forme e dimensioni.
Guadagni <Float> di uscita pubblica ()
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 ()
Tensori di rango 2 che indicano il contributo dei nodi di sinistra quando si diramano dai nodi principali (dato dall'elemento tensore nell'output node_ids_list) alla direzione di sinistra in base alla soglia specificata per ciascuna caratteristica. Questo valore verrà utilizzato per creare il valore del nodo sinistro aggiungendolo al valore del nodo genitore. La dimensione della seconda dimensione è 1 per i logit monodimensionali, ma sarebbe maggiore per i problemi multiclasse. Vedi sopra per dettagli come forme e dimensioni.
output pubblico <intero> nodeId ()
Tensori di rango 1 che indicano possibili ID di nodi suddivisi per ciascuna funzionalità. La lunghezza dell'elenco è num_features, ma ogni tensore ha dimensioni diverse poiché ciascuna 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 da seguire se mancano i dati. Vedi sopra per dettagli come forme e dimensioni. La disuguaglianza con la sinistra predefinita restituisce 0, la disuguaglianza con la destra predefinita restituisce 1, l'uguaglianza con la destra predefinita restituisce 2.
soglie <Integer> di output pubblico ()
Tensori di rango 1 che indicano l'ID del bucket con cui confrontare (come soglia) la suddivisione in ciascun nodo. Vedi sopra per dettagli come forme e dimensioni.