BoostedTreesCalculateBestFeatureSplit

classe finale publique BoostedTreesCalculateBestFeatureSplit

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).

Les formes de sortie sont compatibles de manière à ce que la première dimension de tous les tenseurs soit la même et égale au nombre de nœuds divisés possibles pour chaque caractéristique.

Classes imbriquées

classe BoostedTreesCalculateBestFeatureSplit.Options Attributs facultatifs pour BoostedTreesCalculateBestFeatureSplit

Méthodes publiques

statique BoostedTreesCalculateBestFeatureSplit
créer ( Scope scope, Operand <Integer> nodeIdRange, Operand <Float> statsSummary, Operand <Float> l1, Operand <Float> l2, Operand <Float> treeComplexity, Operand <Float> minNodeWeight, Long logitsDimension, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération BoostedTreesCalculateBestFeatureSplit.
Sortie <Entier>
fonctionnalitéDimensions ()
Un tenseur de rang 1 indiquant la meilleure dimension de fonctionnalité pour chaque fonctionnalité à diviser pour certains nœuds si la fonctionnalité est multidimensionnelle.
Sortie <Flottant>
gains ()
Un tenseur de rang 1 indiquant les meilleurs gains pour chaque fonctionnalité à répartir pour certains nœuds.
Sortie <Flottant>
leftNodeContribs ()
Un tenseur 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é.
Sortie <Entier>
ID de nœud ()
Un tenseur de rang 1 indiquant les identifiants de nœuds divisés possibles pour chaque fonctionnalité.
Sortie <Flottant>
rightNodeContribs ()
Un tenseurs de rang 2, avec les mêmes forme/conditions que left_node_contribs_list, mais juste que la valeur est pour le nœud droit.
statique BoostedTreesCalculateBestFeatureSplit.Options
splitType (chaîne splitType)
Sortie <Chaîne>
splitAvecDefaultDirections ()
Un tenseur de rang 1 indiquant la direction à suivre si des données sont manquantes.
Sortie <Entier>
seuils ()
Un tenseur 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 BoostedTreesCalculateBestFeatureSplit create ( Scope scope, Operand <Integer> nodeIdRange, Operand <Float> statsSummary, Operand <Float> l1, Operand <Float> l2, Operand <Float> treeComplexity, Operand <Float> minNodeWeight, Long logitsDimension, Options.. .options )

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

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é Un tenseur de rang 4 (#shape=[max_splits, feature_dims, bucket, stats_dims]) pour le résumé des statistiques accumulées (gradient/hessian) par nœud, par dimension, par buckets 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.
logitsDimension La dimension du logit, c'est-à-dire le nombre de classes.
choix porte des valeurs d'attributs facultatifs
Retour
  • une nouvelle instance de BoostedTreesCalculateBestFeatureSplit

sortie publique <Integer> featureDimensions ()

Un tenseur de rang 1 indiquant la meilleure dimension de fonctionnalité pour chaque fonctionnalité à diviser pour certains nœuds si la fonctionnalité est multidimensionnelle. Voir ci-dessus pour plus de détails comme les formes et les tailles.

gain de sortie public <Float> ()

Un tenseur de rang 1 indiquant les meilleurs gains pour chaque fonctionnalité à répartir pour certains nœuds. Voir ci-dessus pour plus de détails comme les formes et les tailles.

Sortie publique <Float> leftNodeContribs ()

Un tenseur 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.

sortie publique <Integer> nodeIds ()

Un tenseur 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.

sortie publique <Float> rightNodeContribs ()

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

public statique BoostedTreesCalculateBestFeatureSplit.Options splitType (String splitType)

Paramètres
Type divisé Une chaîne indiquant si cette opération doit effectuer une division d'inégalité ou une division d'égalité.

sortie publique <String> splitWithDefaultDirections ()

Un tenseur de rang 1 indiquant la direction à suivre si des données sont manquantes. Voir ci-dessus pour plus de détails comme les formes et les tailles. L'inégalité avec la gauche par défaut renvoie 0, l'inégalité avec la droite par défaut renvoie 1, l'égalité avec la droite par défaut renvoie 2.

public Sortie <Integer> seuils ()

Un tenseur 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.