internal static BinaryClassificationResult AutoFit(this BinaryClassificationContext context,
                                                           IDataView trainData,
                                                           string label,
                                                           IDataView validationData            = null,
                                                           InferredColumn[] inferredColumns    = null,
                                                           AutoFitSettings settings            = null,
                                                           CancellationToken cancellationToken = default,
                                                           IProgress <BinaryClassificationItertionResult> 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.BinaryClassification, OptimizingMetric.Accuracy,
                                                             debugLogger);

            var results = new BinaryClassificationItertionResult[allPipelines.Length];

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

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