예제 #1
0
        public static SweepablePipelineDataContract ToDataContract(this SweepablePipeline pipeline)
        {
            var estimatorContracts = new List <List <SweepableEstimatorDataContract> >();
            var nodes = pipeline.EstimatorGenerators;

            foreach (var node in nodes)
            {
                var estimators = new List <SweepableEstimatorDataContract>();
                for (int i = 0; i != node.Count; ++i)
                {
                    var estimator         = node[i].RawValue as SweepableEstimatorBase;
                    var estimatorContract = new SweepableEstimatorDataContract()
                    {
                        EstimatorName = estimator.EstimatorName,
                        InputColumns  = estimator.InputColumns,
                        OutputColumns = estimator.OutputColumns,
                        Scope         = estimator.Scope,
                    };
                    estimators.Add(estimatorContract);
                }

                estimatorContracts.Add(estimators);
            }

            return(new SweepablePipelineDataContract()
            {
                Estimators = estimatorContracts,
            });
        }
예제 #2
0
        public static SingleEstimatorSweepablePipelineDataContract ToDataContract(this SingleEstimatorSweepablePipeline pipeline)
        {
            var estimatorContracts = new List <SweepableEstimatorDataContract>();
            var nodes = pipeline.Estimators;

            foreach (var node in nodes)
            {
                var estimatorContract = new SweepableEstimatorDataContract()
                {
                    EstimatorName = node.EstimatorName,
                    InputColumns  = node.InputColumns,
                    OutputColumns = node.OutputColumns,
                    Scope         = node.Scope,
                };

                estimatorContracts.Add(estimatorContract);
            }

            return(new SingleEstimatorSweepablePipelineDataContract()
            {
                Estimators = estimatorContracts,
            });
        }
예제 #3
0
        public SweepableEstimatorBase CreateSweepableEstimator(SweepableEstimatorDataContract estimator)
        {
            var input  = estimator.InputColumns[0];
            var output = estimator.OutputColumns[0];

            switch (estimator.EstimatorName)
            {
            case nameof(LightGbmRegressionTrainer):
                var label   = estimator.InputColumns[0];
                var feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Regression.LightGbm(label, feature));

            case nameof(LinearSvmTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.LinearSvm(label, feature));

            case nameof(LdSvmTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.LdSvm(label, feature));

            case nameof(FastForestBinaryTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.FastForest(label, feature));

            case nameof(FastTreeBinaryTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.FastTree(label, feature));

            case nameof(LightGbmBinaryTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.LightGbm(label, feature));

            case nameof(GamBinaryTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.Gam(label, feature));

            case nameof(SgdNonCalibratedTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.SgdNonCalibrated(label, feature));

            case nameof(SgdCalibratedTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.SgdCalibrated(label, feature));

            case nameof(AveragedPerceptronTrainer):
                label   = estimator.InputColumns[0];
                feature = estimator.InputColumns[1];
                return(this.Context.AutoML().Serializable().BinaryClassification.AveragedPerceptron(label, feature));

            case nameof(OneHotEncodingEstimator):
                return(this.Context.AutoML().Serializable().Transformer.Categorical.OneHotEncoding(input, output));

            case nameof(MissingValueReplacingEstimator):
                return(this.Context.AutoML().Serializable().Transformer.ReplaceMissingValues(input, output));

            case nameof(ColumnConcatenatingEstimator):
                return(this.Context.AutoML().Serializable().Transformer.Concatnate(estimator.InputColumns, output));

            case nameof(TextFeaturizingEstimator):
                return(this.Context.AutoML().Serializable().Transformer.Text.FeaturizeText(input, output));

            case nameof(SerializableTextCatalog.FeaturizeTextWithWordEmbedding):
                return(this.Context.AutoML().Serializable().Transformer.Text.FeaturizeTextWithWordEmbedding(input, output));

            default:
                throw new Exception($"{estimator.EstimatorName} can't be created through SweepabeEstimatorFactory");
            }
        }