BoostedTreesCalculateBestGainsPerFeature

classe finale publique BoostedTreesCalculateBestGainsPerFeature

Calcule les gains pour chaque fonctionnalité et renvoie les meilleures informations de répartition possibles pour la fonctionnalité.

Les informations de répartition correspondent au meilleur seuil (ID de compartiment), aux gains et aux contributions des nœuds gauche/droite par nœud pour chaque fonctionnalité.

Il est possible que tous les nœuds ne puissent pas être divisés sur chaque entité. Par conséquent, la liste des nœuds possibles peut différer selon les fonctionnalités. Par conséquent, nous renvoyons `node_ids_list` pour chaque fonctionnalité, contenant la liste des nœuds que cette fonctionnalité peut être utilisée pour diviser.

De cette manière, le résultat est la meilleure répartition par fonctionnalités et par nœud, de sorte qu'il doit être combiné ultérieurement pour produire la meilleure répartition pour chaque nœud (parmi toutes les fonctionnalités possibles).

La longueur des listes de sortie est toutes de la même longueur, `num_features`. Les formes de sortie sont compatibles de manière à ce que la première dimension de tous les tenseurs de toutes les listes soit la même et égale au nombre de nœuds divisés possibles pour chaque fonctionnalité.

Méthodes publiques

statique BoostedTreesCalculateBestGainsPerFeature
créer ( Scope scope, Operand <Integer> nodeIdRange, Iterable< Operand <Float>> statsSummaryList, Operand <Float> l1, Operand <Float> l2, Operand <Float> treeComplexity, Operand <Float> minNodeWeight, Long maxSplits)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération BoostedTreesCalculateBestGainsPerFeature.
Liste< Sortie <Float>>
gainsListe ()
Une liste de sortie de tenseurs de rang 1 indiquant les meilleurs gains pour chaque fonctionnalité à diviser pour certains nœuds.
Liste< Sortie <Float>>
leftNodeContribsList ()
Une liste de tenseurs de rang 2 indiquant la contribution des nœuds de gauche lors du branchement des nœuds parents (donnés par l'élément tenseur dans la sortie node_ids_list) vers la direction gauche par le seuil donné pour chaque fonctionnalité.
Liste< Sortie <Entier>>
nodeIdsList ()
Une liste de sortie de tenseurs de rang 1 indiquant les identifiants de nœuds divisés possibles pour chaque fonctionnalité.
Liste< Sortie <Float>>
rightNodeContribsList ()
Une liste de tenseurs de rang 2, avec les mêmes forme/conditions que left_node_contribs_list, mais juste que la valeur soit pour le nœud droit.
Liste< Sortie <Entier>>
seuilsListe ()
Une liste de sortie de tenseurs de rang 1 indiquant l'identifiant du bucket avec lequel comparer (comme seuil) pour la division dans chaque nœud.

Méthodes héritées

Méthodes publiques

public static BoostedTreesCalculateBestGainsPerFeature create ( Scope scope, Operand <Integer> nodeIdRange, Iterable< Operand <Float>> statsSummaryList, Operand <Float> l1, Operand <Float> l2, Operand <Float> treeComplexity, Operand <Float> minNodeWeight, Long maxSplits)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération BoostedTreesCalculateBestGainsPerFeature.

Paramètres
portée portée actuelle
nodeIdRange Un tenseur de rang 1 (shape=[2]) pour spécifier la plage [premier, dernier) des identifiants de nœuds à traiter dans `stats_summary_list`. Les nœuds sont itérés entre les deux nœuds spécifiés par le tenseur, comme « pour node_id in range(node_id_range[0], node_id_range[1]) » (notez que le dernier index node_id_range[1] est exclusif).
statsRésuméListe Une liste de tenseurs de rang 3 (#shape=[max_splits, bucket, 2]) pour le résumé des statistiques accumulées (gradient/hessian) par nœud et par bucket pour chaque fonctionnalité. La première dimension du tenseur est le nombre maximum de divisions, et donc tous les éléments ne seront pas utilisés, mais seuls les index spécifiés par node_ids seront utilisés.
l1 l1 facteur de régularisation sur le poids des feuilles, par instance.
l2 Facteur de régularisation l2 sur le poids des feuilles, basé sur chaque instance.
arbreComplexité ajustement du gain, par vantail.
minNodeWeight moyenne minimale de hessiens dans un nœud avant d'être requise pour que le nœud soit pris en compte pour le fractionnement.
maxSplits le nombre de nœuds qui peuvent être divisés dans l'ensemble de l'arborescence. Utilisé comme dimension des tenseurs de sortie.
Retour
  • une nouvelle instance de BoostedTreesCalculateBestGainsPerFeature

liste publique < Sortie <Float>> gainsList ()

Une liste de sortie de tenseurs de rang 1 indiquant les meilleurs gains pour chaque fonctionnalité à diviser pour certains nœuds. Voir ci-dessus pour plus de détails comme les formes et les tailles.

liste publique < Sortie <Float>> leftNodeContribsList ()

Une liste de tenseurs de rang 2 indiquant la contribution des nœuds de gauche lors du branchement des nœuds parents (donnés par l'élément tenseur dans la sortie node_ids_list) vers la direction gauche par le seuil donné pour chaque fonctionnalité. Cette valeur sera utilisée pour créer la valeur du nœud gauche en l'ajoutant à la valeur du nœud parent. La taille de la deuxième dimension est de 1 pour les logits unidimensionnels, mais serait plus grande pour les problèmes multi-classes. Voir ci-dessus pour plus de détails comme les formes et les tailles.

liste publique < Sortie <Integer>> nodeIdsList ()

Une liste de sortie de tenseurs de rang 1 indiquant les identifiants de nœuds divisés possibles pour chaque fonctionnalité. La longueur de la liste est num_features, mais chaque tenseur a une taille différente car chaque fonctionnalité fournit différents nœuds possibles. Voir ci-dessus pour plus de détails comme les formes et les tailles.

public List< Sortie <Float>> rightNodeContribsList ()

Une liste de tenseurs de rang 2, avec les mêmes forme/conditions que left_node_contribs_list, mais juste que la valeur soit pour le nœud droit.

liste publique < Sortie <Integer>> seuilsList ()

Une liste de sortie de tenseurs de rang 1 indiquant l'identifiant du bucket avec lequel comparer (comme seuil) pour la division dans chaque nœud. Voir ci-dessus pour plus de détails comme les formes et les tailles.