| File: Training\TreeLearners\TreeLearner.cs | Web Access |
| Project: src\src\Microsoft.ML.FastTree\Microsoft.ML.FastTree.csproj (Microsoft.ML.FastTree) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using Microsoft.ML.Runtime; namespace Microsoft.ML.Trainers.FastTree { internal abstract class TreeLearner { public readonly Dataset TrainData; public readonly int NumLeaves; // REVIEW: Needs to be assignable due to the way bagging is implemented. :P Imagine something less stupid and fragile. public DocumentPartitioning Partitioning; protected TreeLearner(Dataset trainData, int numLeaves) { TrainData = trainData; NumLeaves = numLeaves; Partitioning = new DocumentPartitioning(TrainData.NumDocs, numLeaves); } public static string TargetWeightsDatasetName { get { return "TargetWeightsDataset"; } } internal abstract InternalRegressionTree FitTargets(IChannel ch, bool[] activeFeatures, double[] targets); /// <summary> /// Get size of reserved memory for the tree learner. /// The default implementation returns 0 directly, and the subclasses can return /// different value if it reserves memory for training. /// </summary> /// <returns>size of reserved memory</returns> public virtual long GetSizeOfReservedMemory() { return 0L; } } /// <summary> /// An exception class for an error which occurs in the midst of learning a tree. /// </summary> internal class TreeLearnerException : Exception { public TreeLearnerException(string message) : base(message) { } } }