Beispiel #1
0
        public static void CreateModel()
        {
            MLContext mlContext = new MLContext();

            IDataView trainingDataView = mlContext.Data.LoadFromTextFile <ModelInput>(
                path: TrainDataFilePath,
                hasHeader: true,
                separatorChar: ',',
                allowQuoting: true,
                allowSparse: false);

            var dataProcessPipeline = mlContext.Transforms.Categorical.OneHotEncoding(
                new[]
            {
                new InputOutputColumnPair("District", "District"),
                new InputOutputColumnPair("Type", "Type"),
                new InputOutputColumnPair("BuildingType", "BuildingType")
            })
                                      .Append(mlContext.Transforms.Concatenate("Features", new[] { "District", "Type", "BuildingType", "Size", "Floor", "TotalFloors", "Year" }));

            FastTreeTweedieTrainer trainer = mlContext.Regression.Trainers.FastTreeTweedie(new FastTreeTweedieTrainer.Options()
            {
                NumberOfLeaves = 20, MinimumExampleCountPerLeaf = 10, NumberOfTrees = 500, LearningRate = 0.07684207f, Shrinkage = 1.057825f, LabelColumnName = "Price", FeatureColumnName = "Features"
            });

            EstimatorChain <RegressionPredictionTransformer <FastTreeTweedieModelParameters> > trainingPipeline = dataProcessPipeline.Append(trainer);

            ITransformer model = trainingPipeline.Fit(trainingDataView);

            mlContext.Model.Save(model, trainingDataView.Schema, ModelFilePath);
        }
Beispiel #2
0
        public void TweedieRegressorEstimator()
        {
            // Pipeline.
            var pipeline = new FastTreeTweedieTrainer(Env, "Label", "Features", advancedSettings: s => {
                s.EntropyCoefficient    = 0.3;
                s.OptimizationAlgorithm = BoostedTreeArgs.OptimizationAlgorithmType.AcceleratedGradientDescent;
            });

            TestEstimatorCore(pipeline, GetRegressionPipeline());
            Done();
        }
Beispiel #3
0
        public void TweedieRegressorEstimator()
        {
            var dataView = GetRegressionPipeline();
            var trainer  = new FastTreeTweedieTrainer(Env, "Label", "Features", advancedSettings: s =>
            {
                s.EntropyCoefficient    = 0.3;
                s.OptimizationAlgorithm = BoostedTreeArgs.OptimizationAlgorithmType.AcceleratedGradientDescent;
            });

            TestEstimatorCore(trainer, dataView);
            var model = trainer.Train(dataView, dataView);

            Done();
        }