internal static MulticlassClassificationResult AutoFit(this MulticlassClassificationContext context,
                                                               IDataView trainData,
                                                               string label,
                                                               IDataView validationData            = null,
                                                               InferredColumn[] inferredColumns    = null,
                                                               AutoFitSettings settings            = null,
                                                               CancellationToken cancellationToken = default,
                                                               IProgress <MulticlassClassificationIterationResult> iterationCallback = null, IDebugLogger debugLogger = null)
        {
            // run autofit & get all pipelines run in that process
            var(allPipelines, bestPipeline) = AutoFitApi.Fit(trainData, validationData, label, inferredColumns,
                                                             settings, TaskKind.MulticlassClassification, OptimizingMetric.Accuracy, debugLogger);

            var results = new MulticlassClassificationIterationResult[allPipelines.Length];

            for (var i = 0; i < results.Length; i++)
            {
                var iterationResult = allPipelines[i];
                var result          = new MulticlassClassificationIterationResult(iterationResult.Model, (MultiClassClassifierMetrics)iterationResult.EvaluatedMetrics, iterationResult.ScoredValidationData);
                results[i] = result;
            }
            var bestResult = new MulticlassClassificationIterationResult(bestPipeline.Model, (MultiClassClassifierMetrics)bestPipeline.EvaluatedMetrics, bestPipeline.ScoredValidationData);

            return(new MulticlassClassificationResult(bestResult, results));
        }
 public MulticlassClassificationResult(MulticlassClassificationIterationResult bestPipeline,
                                       MulticlassClassificationIterationResult[] iterationResults)
 {
     BestPipeline     = bestPipeline;
     IterationResults = iterationResults;
 }