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 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) { return(AutoFit(context, trainData, label, validationData, inferredColumns, settings, cancellationToken, iterationCallback, null)); }
public AutoFitter(MLContext mlContext, OptimizingMetricInfo metricInfo, AutoFitSettings settings, TaskKind task, string label, PurposeInference.Column[] puproseOverrides, IDataView trainData, IDataView validationData, IDebugLogger debugLogger) { _debugLogger = debugLogger; _history = new List <PipelineRunResult>(); _label = label; _mlContext = mlContext; _optimizingMetricInfo = metricInfo; _settings = settings ?? new AutoFitSettings(); _puproseOverrides = puproseOverrides; _trainData = trainData; _task = task; _validationData = validationData; }
public static void ValidateAutoFitArgs(IDataView trainData, string label, IDataView validationData, AutoFitSettings settings, IEnumerable <(string, ColumnPurpose)> purposeOverrides)
public static (PipelineRunResult[] allPipelines, PipelineRunResult bestPipeline) Fit(IDataView trainData, IDataView validationData, string label, AutoFitSettings settings, TaskKind task, OptimizingMetric metric, IEnumerable <(string, ColumnPurpose)> purposeOverrides, IDebugLogger debugLogger)
public static (PipelineRunResult[] allPipelines, PipelineRunResult bestPipeline) Fit(IDataView trainData, IDataView validationData, string label, InferredColumn[] inferredColumns, AutoFitSettings settings, TaskKind task, OptimizingMetric metric, IDebugLogger debugLogger) { // hack: init new MLContext var mlContext = new MLContext(); // infer pipelines var optimizingMetricfInfo = new OptimizingMetricInfo(metric); var autoFitter = new AutoFitter(mlContext, optimizingMetricfInfo, settings, task, label, ToInternalColumnPurposes(inferredColumns), trainData, validationData, debugLogger); var allPipelines = autoFitter.Fit(1); var bestScore = allPipelines.Max(p => p.Score); var bestPipeline = allPipelines.First(p => p.Score == bestScore); return(allPipelines, bestPipeline); }
public static RegressionResult AutoFit(this RegressionContext context, IDataView trainData, string label, IDataView validationData = null, AutoFitSettings settings = null, IEnumerable <(string, ColumnPurpose)> purposeOverrides = null,