Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 public static RegressionResult AutoFit(this RegressionContext context,
                                        IDataView trainData,
                                        string label,
                                        IDataView validationData = null,
                                        AutoFitSettings settings = null,
                                        IEnumerable <(string, ColumnPurpose)> purposeOverrides = null,