Calcule les gains pour chaque fonctionnalité et renvoie les meilleures informations de répartition possibles pour chaque nœud. Toutefois, si aucune répartition n'est trouvée, aucune information de répartition n'est renvoyée pour ce nœud.
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.
Constantes
Chaîne | OP_NAME | Le nom de cette opération, tel que connu par le moteur principal TensorFlow |
Méthodes publiques
statique BoostedTreesCalculateBestFeatureSplitV2 | créer ( Scope scope, Operand < TInt32 > nodeIdRange, Iterable< Operand < TFloat32 >> statsSummariesList, Operand < TString > splitTypes, Operand < TInt32 > candidateFeatureIds, Operand < TFloat32 > l1, Operand < TFloat32 > l2, Operand < TFloat32 > treeComplexity, Opérande < TFloat32 > minNodeWeight, Long logitsDimension) Méthode d'usine pour créer une classe encapsulant une nouvelle opération BoostedTreesCalculateBestFeatureSplitV2. |
Sortie < TInt32 > | 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 < TInt32 > | identifiants de fonctionnalités () Un tenseur de rang 1 indiquant le meilleur identifiant de fonctionnalité pour chaque nœud. |
Sortie < TFloat32 > | gains () Un tenseur de rang 1 indiquant les meilleurs gains pour chaque fonctionnalité à diviser pour certains nœuds. |
Sortie < TFloat32 > | 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 < TInt32 > | ID de nœud () Un tenseur de rang 1 indiquant les identifiants de nœuds divisés possibles pour chaque fonctionnalité. |
Sortie < TFloat32 > | 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. |
Sortie < TString > | splitAvecDefaultDirections () Un tenseur de rang 1 indiquant la direction à suivre si des données sont manquantes. |
Sortie < TInt32 > | 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
Constantes
chaîne finale statique publique OP_NAME
Le nom de cette opération, tel que connu par le moteur principal TensorFlow
Méthodes publiques
public static BoostedTreesCalculateBestFeatureSplitV2 créer ( Scope scope, Operand < TInt32 > nodeIdRange, Iterable < Operand < TFloat32 >> statsSummariesList, Operand < TString > splitTypes, Operand < TInt32 > candidateFeatureIds, Operand < TFloat32 > l1, Operand < TFloat32 > l2, Operand < TFloat32 > treeComplexity, Opérande < TFloat32 > minNodeWeight, Long logitsDimension)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération BoostedTreesCalculateBestFeatureSplitV2.
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). |
statistiquesRésumésListe | Une liste de tenseurs 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. |
Types divisés | Un tenseur de rang 1 indiquant si cette opération doit effectuer une division d'inégalité ou une division d'égalité par entité. |
candidatsFeatureIds | Tenseur de rang 1 avec identifiants pour chaque fonctionnalité. Il s'agit du véritable identifiant de la fonctionnalité. |
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. |
Retour
- une nouvelle instance de BoostedTreesCalculateBestFeatureSplitV2
Sortie publique < TInt32 > 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.
Sortie publique < TInt32 > featureIds ()
Un tenseur de rang 1 indiquant le meilleur identifiant de fonctionnalité pour chaque nœud. Voir ci-dessus pour plus de détails comme les formes et les tailles.
sortie publique < TFloat32 > gains ()
Un tenseur 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.
Sortie publique < TFloat32 > 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 < TInt32 > 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 < TFloat32 > 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.
sortie publique < TString > 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.