Class BayesianOptimizationAutoML<T, TInput, TOutput>
Built-in AutoML strategy that uses a lightweight Bayesian-style surrogate to guide trial selection.
public sealed class BayesianOptimizationAutoML<T, TInput, TOutput> : BuiltInSupervisedAutoMLModelBase<T, TInput, TOutput>, IAutoMLModel<T, TInput, TOutput>, IFullModel<T, TInput, TOutput>, IModel<TInput, TOutput, ModelMetadata<T>>, IModelSerializer, ICheckpointableModel, IParameterizable<T, TInput, TOutput>, IFeatureAware, IFeatureImportance<T>, ICloneable<IFullModel<T, TInput, TOutput>>, IGradientComputable<T, TInput, TOutput>, IJitCompilable<T>
Type Parameters
TThe numeric type used for calculations.
TInputThe input data type.
TOutputThe output data type.
- Inheritance
-
AutoMLModelBase<T, TInput, TOutput>SupervisedAutoMLModelBase<T, TInput, TOutput>BuiltInSupervisedAutoMLModelBase<T, TInput, TOutput>BayesianOptimizationAutoML<T, TInput, TOutput>
- Implements
-
IAutoMLModel<T, TInput, TOutput>IFullModel<T, TInput, TOutput>IModel<TInput, TOutput, ModelMetadata<T>>IParameterizable<T, TInput, TOutput>ICloneable<IFullModel<T, TInput, TOutput>>IGradientComputable<T, TInput, TOutput>
- Inherited Members
- Extension Methods
Remarks
This implementation uses a pragmatic, production-friendly approach: - Use a bandit policy to allocate trials across candidate model families. - Use a kernel-weighted surrogate over observed trials to bias sampling toward promising regions.
For Beginners: Instead of trying totally random settings every time, this strategy learns from earlier trials and tries more settings similar to the best ones found so far.
Constructors
BayesianOptimizationAutoML(IModelEvaluator<T, TInput, TOutput>?, Random?)
public BayesianOptimizationAutoML(IModelEvaluator<T, TInput, TOutput>? modelEvaluator = null, Random? random = null)
Parameters
modelEvaluatorIModelEvaluator<T, TInput, TOutput>randomRandom
Methods
CreateInstanceForCopy()
Factory method for creating a new instance for deep copy. Derived classes must implement this to return a new instance of themselves. This ensures each copy has its own collections and lock object.
protected override AutoMLModelBase<T, TInput, TOutput> CreateInstanceForCopy()
Returns
- AutoMLModelBase<T, TInput, TOutput>
A fresh instance of the derived class with default parameters
Remarks
When implementing this method, derived classes should create a fresh instance with default parameters, and should not attempt to preserve runtime or initialization state from the original instance. The deep copy logic will transfer relevant state (trial history, search space, etc.) after construction.
SearchAsync(TInput, TOutput, TInput, TOutput, TimeSpan, CancellationToken)
Searches for the best model configuration
public override Task<IFullModel<T, TInput, TOutput>> SearchAsync(TInput inputs, TOutput targets, TInput validationInputs, TOutput validationTargets, TimeSpan timeLimit, CancellationToken cancellationToken = default)
Parameters
inputsTInputtargetsTOutputvalidationInputsTInputvalidationTargetsTOutputtimeLimitTimeSpancancellationTokenCancellationToken
Returns
- Task<IFullModel<T, TInput, TOutput>>
SuggestNextTrialAsync()
Suggests the next hyperparameters to try
public override Task<Dictionary<string, object>> SuggestNextTrialAsync()