| File: Experiment\SuggestedPipelineRunDetails\SuggestedPipelineCrossValRunDetail.cs | Web Access |
| Project: src\src\Microsoft.ML.AutoML\Microsoft.ML.AutoML.csproj (Microsoft.ML.AutoML) |
// 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 System.Collections.Generic; using System.Linq; namespace Microsoft.ML.AutoML { internal sealed class SuggestedPipelineTrainResult<TMetrics> { public readonly TMetrics ValidationMetrics; public readonly ModelContainer ModelContainer; public readonly Exception Exception; public readonly double Score; internal SuggestedPipelineTrainResult(ModelContainer modelContainer, TMetrics metrics, Exception exception, double score) { ModelContainer = modelContainer; ValidationMetrics = metrics; Exception = exception; Score = score; } public TrainResult<TMetrics> ToTrainResult() { return new TrainResult<TMetrics>(ModelContainer, ValidationMetrics, Exception); } } internal sealed class SuggestedPipelineCrossValRunDetail<TMetrics> : SuggestedPipelineRunDetail { public readonly IEnumerable<SuggestedPipelineTrainResult<TMetrics>> Results; internal SuggestedPipelineCrossValRunDetail(SuggestedPipeline pipeline, double score, bool runSucceeded, IEnumerable<SuggestedPipelineTrainResult<TMetrics>> results) : base(pipeline, score, runSucceeded) { Results = results; Exception = Results.Select(r => r.Exception).FirstOrDefault(e => e != null); } public CrossValidationRunDetail<TMetrics> ToIterationResult(IEstimator<ITransformer> preFeaturizer) { var estimator = SuggestedPipelineRunDetailUtil.PrependPreFeaturizer(Pipeline.ToEstimator(), preFeaturizer); return new CrossValidationRunDetail<TMetrics>(Pipeline.Trainer.TrainerName.ToString(), estimator, Pipeline.ToPipeline(), Results.Select(r => r.ToTrainResult())); } } }