| File: Prediction\TrainerInfo.cs | Web Access |
| Project: src\src\Microsoft.ML.Core\Microsoft.ML.Core.csproj (Microsoft.ML.Core) |
// 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. namespace Microsoft.ML; /// <summary> /// Characteristics of a trainer. Exposed via the Info property of each trainer. /// </summary> public sealed class TrainerInfo { // REVIEW: Ideally trainers should be able to communicate // something about the type of data they are capable of being trained // on, for example, what ColumnKinds they want, how many of each, of what type, // etc. This interface seems like the most natural conduit for that sort // of extra information. /// <summary> /// Whether the trainer needs to see data in normalized form. Only non-parametric trainers will tend to return /// <see langword="false"/> here. /// </summary> public bool NeedNormalization { get; } /// <summary> /// Whether the trainer needs calibration to produce probabilities. As a general rule only trainers that produce /// binary classifier predictors that also do not have a natural probabilistic interpretation should have a /// <see langword="true"/> value here. /// </summary> [BestFriend] internal bool NeedCalibration { get; } /// <summary> /// Whether this trainer could benefit from a cached view of the data. Trainers that have few passes over the /// data, or that need to build their own custom data structure over the data, will have a <c>false</c> here. /// </summary> public bool WantCaching { get; } /// <summary> /// Whether the trainer supports validation set via <see cref="TrainContext.ValidationSet"/>. Not implementing /// this interface and returning <c>false</c> from this property is an indication the trainer does not support /// that. /// </summary> [BestFriend] internal bool SupportsValidation { get; } /// <summary> /// Whether the trainer can use test set via <see cref="TrainContext.TestSet"/>. Not implementing /// this interface and returning <c>false</c> from this property is an indication the trainer does not support /// that. /// </summary> [BestFriend] internal bool SupportsTest { get; } /// <summary> /// Whether the trainer can support incremental trainers via <see cref="TrainContext.InitialPredictor"/>. Not /// implementing this interface and returning <c>true</c> from this property is an indication the trainer does /// not support that. /// </summary> [BestFriend] internal bool SupportsIncrementalTraining { get; } /// <summary> /// Initializes with the given parameters. The parameters have default values for the most typical values /// for most classical trainers. /// </summary> /// <param name="normalization">The value for the property <see cref="NeedNormalization"/></param> /// <param name="calibration">The value for the property <see cref="NeedCalibration"/></param> /// <param name="caching">The value for the property <see cref="WantCaching"/></param> /// <param name="supportValid">The value for the property <see cref="SupportsValidation"/></param> /// <param name="supportIncrementalTrain">The value for the property <see cref="SupportsIncrementalTraining"/></param> /// <param name="supportTest">The value for the property <see cref="SupportsTest"/></param> [BestFriend] internal TrainerInfo(bool normalization = true, bool calibration = false, bool caching = true, bool supportValid = false, bool supportIncrementalTrain = false, bool supportTest = false) { NeedNormalization = normalization; NeedCalibration = calibration; WantCaching = caching; SupportsValidation = supportValid; SupportsIncrementalTraining = supportIncrementalTrain; SupportsTest = supportTest; } }