1 write to FeatureSplitInfo
Microsoft.ML.FastTree (1)
Training\TreeLearners\LeastSquaresRegressionTreeLearner.cs (1)
842FeatureSplitInfo = new SplitInfo[data.NumFeatures];
66 references to FeatureSplitInfo
Microsoft.ML.FastTree (66)
Dataset\FeatureFlock.cs (44)
226leafSplitCandidates.FeatureSplitInfo[leafSplitCandidates.FlockToBestFeature[flock]].Gain < 227leafSplitCandidates.FeatureSplitInfo[feature].Gain) 316leafSplitCandidates.FeatureSplitInfo[featureIndex].CategoricalSplit = false; 317leafSplitCandidates.FeatureSplitInfo[featureIndex].Feature = featureIndex; 318leafSplitCandidates.FeatureSplitInfo[featureIndex].Threshold = bestThreshold; 319leafSplitCandidates.FeatureSplitInfo[featureIndex].LteOutput = leafCalculator.CalculateSplittedLeafOutput(totalCount - bestGTCount, sumTargets - bestSumGTTargets, sumWeights - bestSumGTWeights); 320leafSplitCandidates.FeatureSplitInfo[featureIndex].GTOutput = leafCalculator.CalculateSplittedLeafOutput(bestGTCount, bestSumGTTargets, bestSumGTWeights); 321leafSplitCandidates.FeatureSplitInfo[featureIndex].LteCount = totalCount - bestGTCount; 322leafSplitCandidates.FeatureSplitInfo[featureIndex].GTCount = bestGTCount; 324leafSplitCandidates.FeatureSplitInfo[featureIndex].Gain = (bestShiftedGain - gainShift) * trust - usePenalty; 326leafSplitCandidates.FeatureSplitInfo[featureIndex].GainPValue = ProbabilityFunctions.Erfc(erfcArg); 463leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalFeatureIndices = 466leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplitRange = new[] 469leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Feature = firstFlockFeature; 470leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplit = true; 471leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteOutput = 475leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTOutput = 478leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteCount = totalCount - bestGTCount; 479leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTCount = bestGTCount; 481leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Gain = (bestShiftedGain - gainShift) * trust - 486leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GainPValue = ProbabilityFunctions.Erfc(erfcArg); 490leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Flock = flock; 675leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalFeatureIndices = 678leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplitRange = new[] 681leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Feature = firstFlockFeature; 682leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplit = true; 683leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteOutput = 687leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTOutput = 690leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteCount = totalCount - bestGTCount; 691leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTCount = bestGTCount; 693leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Gain = (bestShiftedGain - gainShift) * trust - 698leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GainPValue = ProbabilityFunctions.Erfc(erfcArg); 702leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Flock = flock; 897leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalFeatureIndices = 900leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplitRange = new[] 903leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Feature = firstFlockFeature; 904leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].CategoricalSplit = true; 905leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteOutput = 909leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTOutput = 912leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].LteCount = totalCount - bestGTCount; 913leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GTCount = bestGTCount; 915leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Gain = (bestShiftedGain - gainShift) * trust - 920leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].GainPValue = ProbabilityFunctions.Erfc(erfcArg); 924leafSplitCandidates.FeatureSplitInfo[firstFlockFeature].Flock = flock;
GamTrainer.cs (2)
368if (_leafSplitCandidates.FeatureSplitInfo[globalFeatureIndex].Gain > 0) 577SplitInfo splitinfo = _leafSplitCandidates.FeatureSplitInfo[globalFeatureIndex];
Training\TreeLearners\FastForestLeastSquaresTreeLearner.cs (1)
55var infos = leafSplitCandidates.FeatureSplitInfo;
Training\TreeLearners\LeastSquaresRegressionTreeLearner.cs (19)
456bestFeature = leafSplitCandidates.FeatureSplitInfo.Select(info => info.Gain) 460var infos = leafSplitCandidates.FeatureSplitInfo; 486bestFeature = leafSplitCandidates.FeatureSplitInfo.Select(info => info.Gain / SoftmaxTemperature).SoftArgMax(Rand); 494BestSplitInfoPerLeaf[leaf] = leafSplitCandidates.FeatureSplitInfo[bestFeature]; 792leafSplitCandidates.FeatureSplitInfo[feature].Feature = feature; 793leafSplitCandidates.FeatureSplitInfo[feature].Threshold = bestThreshold; 794leafSplitCandidates.FeatureSplitInfo[feature].LteOutput = CalculateSplittedLeafOutput(totalCount - bestGTCount, sumTargets - bestSumGTTargets, sumWeights - bestSumGTWeights); 795leafSplitCandidates.FeatureSplitInfo[feature].GTOutput = CalculateSplittedLeafOutput(bestGTCount, bestSumGTTargets, bestSumGTWeights); 796leafSplitCandidates.FeatureSplitInfo[feature].LteCount = totalCount - bestGTCount; 797leafSplitCandidates.FeatureSplitInfo[feature].GTCount = bestGTCount; 803leafSplitCandidates.FeatureSplitInfo[feature].Gain = (bestShiftedGain - gainShift) * trust - usePenalty; 805leafSplitCandidates.FeatureSplitInfo[feature].GainPValue = ProbabilityFunctions.Erfc(erfcArg); 810leafSplitCandidates.FeatureSplitInfo[leafSplitCandidates.FlockToBestFeature[flock]].Gain < 811leafSplitCandidates.FeatureSplitInfo[feature].Gain) 816bestSplit = leafSplitCandidates.FeatureSplitInfo[feature]; 896+ SplitInfo.SizeInBytes(maxCatSplitPoints) * FeatureSplitInfo.Length 1075for (int f = 0; f < FeatureSplitInfo.Length; f++) 1077FeatureSplitInfo[f].Feature = f; 1078FeatureSplitInfo[f].Gain = double.NegativeInfinity;