コード例 #1
0
        public static CommonOutputs.TransformOutput Featurizer(IHostEnvironment env, TreeEnsembleFeaturizerTransform.ArgumentsForEntryPoint input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("TreeFeaturizerTransform");

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

            var xf = TreeEnsembleFeaturizerTransform.CreateForEntryPoint(env, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #2
0
        public static CommonOutputs.TransformOutput KeyToText(IHostEnvironment env, KeyToValueMappingTransformer.Arguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("KeyToValue");

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

            var xf = KeyToValueMappingTransformer.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #3
0
        public static CommonOutputs.RankingOutput TrainRanking(IHostEnvironment env, LightGbmRankingTrainer.Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("TrainLightGBM");

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

            return(TrainerEntryPointsUtils.Train <LightGbmRankingTrainer.Options, CommonOutputs.RankingOutput>(host, input,
                                                                                                               () => new LightGbmRankingTrainer(host, input),
                                                                                                               getLabel: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName),
                                                                                                               getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName),
                                                                                                               getGroup: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName)));
        }
コード例 #4
0
        public static CommonOutputs.TransformOutput MutualInformationSelect(IHostEnvironment env, MutualInformationFeatureSelectingEstimator.Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("MutualInformationSelect");

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

            var xf = MutualInformationFeatureSelectingEstimator.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #5
0
        public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, XGBoostArguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("Train" + EntryPointName);

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

            return(LearnerEntryPointsUtils.Train <XGBoostArguments,
                                                  CommonOutputs.BinaryClassificationOutput>(host, input,
                                                                                            () => new XGBoostBinaryTrainer(host, input),
                                                                                            getLabel: () => LearnerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumn),
                                                                                            getWeight: () => LearnerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.WeightColumn)));
        }
コード例 #6
0
        public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, FastTreeRegressionTrainer.Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("TrainFastTree");

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

            return(TrainerEntryPointsUtils.Train <FastTreeRegressionTrainer.Options, CommonOutputs.RegressionOutput>(host, input,
                                                                                                                     () => new FastTreeRegressionTrainer(host, input),
                                                                                                                     () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName),
                                                                                                                     () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName),
                                                                                                                     () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName)));
        }
コード例 #7
0
        public static CommonOutputs.TransformOutput LabelIndicator(IHostEnvironment env, Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("LabelIndictator");

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

            var xf = Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #8
0
        public static CommonOutputs.TransformOutput TextToKey(IHostEnvironment env, TermTransform.Arguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("Term");

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

            var xf = TermTransform.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModel(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #9
0
        public static CommonOutputs.TransformOutput CountSelect(IHostEnvironment env, CountFeatureSelectionTransformer.Arguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("CountSelect");

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

            var xf = CountFeatureSelectionTransformer.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModel(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #10
0
        public static CommonOutputs.TransformOutput Nop(IHostEnvironment env, NopInput input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("Nop");

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

            var xf = CreateIfNeeded(host, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModel(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #11
0
        public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, FastTreeBinaryClassificationTrainer.Arguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("TrainFastTree");

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

            return(LearnerEntryPointsUtils.Train <FastTreeBinaryClassificationTrainer.Arguments, CommonOutputs.BinaryClassificationOutput>(host, input,
                                                                                                                                           () => new FastTreeBinaryClassificationTrainer(host, input),
                                                                                                                                           () => LearnerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumn),
                                                                                                                                           () => LearnerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.WeightColumn),
                                                                                                                                           () => LearnerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.GroupIdColumn)));
        }
コード例 #12
0
        public static CommonOutputs.TransformOutput CatTransformHash(IHostEnvironment env, OneHotHashEncoding.Arguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("CatTransformDict");

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

            var xf = OneHotHashEncoding.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #13
0
        public static CommonOutputs.TransformOutput LogMeanVar(IHostEnvironment env, NormalizeTransform.LogMeanVarArguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("LogMeanVar");

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

            var xf = NormalizeTransform.Create(host, input, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModel(env, xf, input.Data), OutputData = xf
            });
        }
コード例 #14
0
        public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, FastForestBinaryTrainer.Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("TrainFastForest");

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

            return(TrainerEntryPointsUtils.Train <FastForestBinaryTrainer.Options, CommonOutputs.BinaryClassificationOutput>(host, input,
                                                                                                                             () => new FastForestBinaryTrainer(host, input),
                                                                                                                             () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName),
                                                                                                                             () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName),
                                                                                                                             () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName),
                                                                                                                             calibrator: input.Calibrator, maxCalibrationExamples: input.MaxCalibrationExamples));
        }
コード例 #15
0
        public static PermutationFeatureImportanceOutput PermutationFeatureImportance(IHostEnvironment env, PermutationFeatureImportanceArguments input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("Pfi");

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

            input.PredictorModel.PrepareData(env, input.Data, out RoleMappedData roleMappedData, out IPredictor predictor);
            Contracts.Assert(predictor != null, "No predictor found in model");
            IDataView result = PermutationFeatureImportanceUtils.GetMetrics(env, predictor, roleMappedData, input);

            return(new PermutationFeatureImportanceOutput {
                Metrics = result
            });
        }
コード例 #16
0
        public static CommonOutputs.TransformOutput ConcatColumns(IHostEnvironment env, ColumnCopyingTransformer.Options input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("PrefixConcatColumns");

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

            // Get all column names with preserving order.
            var colNames = new List <string>(input.Data.Schema.Count);

            for (int i = 0; i < input.Data.Schema.Count; i++)
            {
                colNames.Add(input.Data.Schema[i].Name);
            }

            // Iterate through input options, find matching source columns, create new input options
            var inputOptions = new ColumnConcatenatingTransformer.Options()
            {
                Data = input.Data
            };
            var columns = new List <ColumnConcatenatingTransformer.Column>(input.Columns.Length);

            foreach (var col in input.Columns)
            {
                var newCol = new ColumnConcatenatingTransformer.Column();
                newCol.Name = col.Name;
                var prefix = col.Source;
                newCol.Source = colNames.Where(x => x.StartsWith(prefix, StringComparison.InvariantCulture)).ToArray();
                if (newCol.Source.Length == 0)
                {
                    throw new ArgumentOutOfRangeException("No matching columns found for prefix: " + prefix);
                }

                columns.Add(newCol);
            }
            inputOptions.Columns = columns.ToArray();

            var xf = ColumnConcatenatingTransformer.Create(env, inputOptions, inputOptions.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModelImpl(env, xf, inputOptions.Data), OutputData = xf
            });
        }
コード例 #17
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
            });
        }