Ejemplo n.º 1
0
        public static CommonOutputs.SummaryOutput Summarize(IHostEnvironment env, SummarizePredictor.Input input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("LinearRegressionPredictor");

            host.CheckValue(input, nameof(input));
            EntryPointUtils.CheckInputArgs(host, input);

            RoleMappedData rmd;
            IPredictor     predictor;

            input.PredictorModel.PrepareData(host, new EmptyDataView(host, input.PredictorModel.TransformModel.InputSchema), out rmd, out predictor);

            var output = new CommonOutputs.SummaryOutput();

            output.Summary = GetSummaryAndStats(host, predictor, rmd.Schema, out output.Stats);
            return(output);
        }
Ejemplo n.º 2
0
        public static SummaryOutput Summarize(IHostEnvironment env, SummarizePredictor.Input input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("PipelineEnsemblePredictor");

            host.CheckValue(input, nameof(input));
            EntryPointUtils.CheckInputArgs(host, input);

            input.PredictorModel.PrepareData(host,
                                             new EmptyDataView(host, input.PredictorModel.TransformModel.InputSchema),
                                             out RoleMappedData rmd, out IPredictor predictor
                                             );

            var calibrated = predictor as CalibratedPredictorBase;

            while (calibrated != null)
            {
                predictor  = calibrated.SubPredictor;
                calibrated = predictor as CalibratedPredictorBase;
            }
            var ensemble = predictor as SchemaBindablePipelineEnsembleBase;

            host.CheckUserArg(ensemble != null, nameof(input.PredictorModel.Predictor), "Predictor is not a pipeline ensemble predictor");

            var summaries = new IDataView[ensemble.PredictorModels.Length];
            var stats     = new IDataView[ensemble.PredictorModels.Length];

            for (int i = 0; i < ensemble.PredictorModels.Length; i++)
            {
                var pm = ensemble.PredictorModels[i];

                pm.PrepareData(host, new EmptyDataView(host, pm.TransformModel.InputSchema), out rmd, out IPredictor pred);
                summaries[i] = SummarizePredictor.GetSummaryAndStats(host, pred, rmd.Schema, out stats[i]);
            }
            return(new SummaryOutput()
            {
                Summaries = summaries, Stats = stats
            });
        }