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, }); }
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, }); }
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"); } }