FastTree (Boosted Trees) Ranking

The documentation is generated based on the sources available at dotnet/machinelearning and released under MIT License.

Type: rankertrainer Aliases: FastTreeRanking, ftrank, FastRankRanking, FastRankRankingWrapper, rank, frrank, btrank Namespace: Microsoft.ML.Trainers.FastTree Assembly: Microsoft.ML.FastTree.dll Microsoft Documentation: FastTree (Boosted Trees) Ranking


Trains gradient boosted decision trees to the LambdaRank quasi-gradient.


Name Short name Default Description
allowEmptyTrees allowempty True When a root split is impossible, allow training to proceed
baggingSize bag 0 Number of trees in each bag (0 for disabling bagging)
baggingTrainFraction bagfrac 0.7 Percentage of training examples used in each bag
baselineAlphaRisk basealpha   Baseline alpha for tradeoffs of risk (0 is normal training)
baselineScoresFormula basescores   Freeform defining the scores that should be used as the baseline ranker
bestStepRankingRegressionTrees bsr False Use best regression step trees?
bias   0 Bias for calculating gradient for each feature bin for a categorical feature.
bundling bundle None Bundle low population bins. Bundle.None(0): no bundling, Bundle.AggregateLowPopulation(1): Bundle low population, Bundle.Adjacent(2): Neighbor low population bundle.
categoricalSplit cat False Whether to do split based on multiple categorical feature values.
compressEnsemble cmp False Compress the tree Ensemble
costFunctionParam cf w Cost function parameter (w/c)
customGains gains 0,3,7,15,31 Comma seperated list of gains associated to each relevance label.
diskTranspose dt   Whether to utilize the disk or the data’s native transposition facilities (where applicable) when performing the transpose
distanceWeight2 dw False Distance weight 2 adjustment to cost
dropoutRate tdrop 0 Dropout rate for tree regularization
earlyStoppingMetrics esmt 1 Early stopping metrics. (For regression, 1: L1, 2:L2; for ranking, 1:NDCG@1, 3:NDCG@3)
earlyStoppingRule esr   Early stopping rule. (Validation set (/valid) is required.)
enablePruning pruning False Enable post-training pruning to avoid overfitting. (a validation set is required)
entropyCoefficient e 0 The entropy (regularization) coefficient between 0 and 1
executionTimes et False Print execution time breakdown to stdout
featureCompressionLevel fcomp 1 The level of feature compression to use
featureFirstUsePenalty ffup 0 The feature first use penalty coefficient
featureFlocks flocks True Whether to collectivize features during dataset preparation to speed up training
featureFraction ff 1 The fraction of features (chosen randomly) to use on each iteration
featureReusePenalty frup 0 The feature re-use penalty (regularization) coefficient
featureSelectSeed r3 123 The seed of the active feature selection
filterZeroLambdas fzl False Filter zero lambdas during training
gainConfidenceLevel gainconf 0 Tree fitting gain confidence requirement (should be in the range [0,1) ).
getDerivativesSampleRate sr 1 Sample each query 1 in k times in the GetDerivatives function
histogramPoolSize ps -1 The number of histograms in the pool (between 2 and numLeaves)
lambdaMartMaxTruncation n 100 max-NDCG truncation to use in the Lambda Mart algorithm
learningRates lr 0.2 The learning rate
maxBins mb 255 Maximum number of distinct values (bins) per feature
maxCategoricalGroupsPerNode mcg 64 Maximum categorical split groups to consider when splitting on a categorical feature. Split groups are a collection of split points. This is used to reduce overfitting when there many categorical features.
maxCategoricalSplitPoints maxcat 64 Maximum categorical split points to consider when splitting on a categorical feature.
maxTreeOutput mo 100 Upper bound on absolute value of single tree output
maxTreesAfterCompression cmpmax -1 Maximum Number of trees after compression
minDocsForCategoricalSplit mdo 100 Minimum categorical doc count in a bin to consider for a split.
minDocsPercentageForCategoricalSplit mdop 0.001 Minimum categorical docs percentage in a bin to consider for a split.
minDocumentsInLeafs mil 10 The minimal number of documents allowed in a leaf of a regression tree, out of the subsampled data
minStepSize minstep 0 Minimum line search step size
normalizeQueryLambdas nql False Normalize query lambdas
numLeaves nl 20 The max number of leaves in each regression tree
numPostBracketSteps lssteps 0 Number of post-bracket line search steps
numThreads t   The number of threads to use
numTrees iter 100 Total number of decision trees to create in the ensemble
optimizationAlgorithm oa GradientDescent Optimization algorithm to be used (GradientDescent, AcceleratedGradientDescent)
parallelTrainer parag Microsoft. ML. Trainers. FastTree. SingleTrainerFactory Allows to choose Parallel FastTree Learning Algorithm
positionDiscountFreeform pdff   The discount freeform which specifies the per position discounts of documents in a query (uses a single variable P for position where P=0 is first position)
printTestGraph graph False Print metrics graph for the first test set
printTrainValidGraph graphtv False Print Train and Validation metrics in graph
pruningThreshold prth 0.004 The tolerance threshold for pruning
pruningWindowSize prws 5 The moving window size for pruning
randomStart rs False Training starts from random ordering (determined by /r1)
rngSeed r1 123 The seed of the random number generator
shiftedNdcg   False Use shifted NDCG
shrinkage shrk 1 Shrinkage
smoothing s 0 Smoothing paramter for tree regularization
softmaxTemperature smtemp 0 The temperature of the randomized softmax distribution for choosing the feature
sortingAlgorithm sort DescendingStablePessimistic The sorting algorithm to use for DCG and LambdaMart calculations [DescendingStablePessimistic/DescendingStable/DescendingReverse/DescendingDotNet]
sparsifyThreshold sp 0.7 Sparsity level needed to use sparse feature representation
splitFraction sf 1 The fraction of features (chosen randomly) to use on each split
testFrequency tf 2147483647 Calculate metric values for train/valid/test every k rounds
trainDcg dcg False Train DCG instead of NDCG
useLineSearch ls False Should we use line search for a step size
useTolerantPruning prtol False Use window and tolerance for pruning
writeLastEnsemble hl False Write the last ensemble instead of the one determined by early stopping