Ejemplo n.º 1
0
        public Models.App.QtdResponse GetQtdResponse([FromBody] Models.App.QtdResponseBody qtdResponseBody)
        {
            Models.App.QtdResponse qtdResponse = new Models.App.QtdResponse();
            Regressor regressor = new Regressor();
            string    filterTxt = JsonConvert.SerializeObject(qtdResponseBody.FilterOptions);

            regressor.LoadByFilter(filterTxt);
            string text = System.IO.File.ReadAllText(Location.ConfLocation);
            Conf   conf = JsonConvert.DeserializeObject <Conf>(text);


            if (regressor.RegressorId == null || regressor.RegressorId == "")
            {
                //treinar
                string Regressor_Id = Encoder.Base64Encode(Convert.ToString(DateTime.Now));
                string trainerDir   = conf.TrainerDir;
                string Trainercmd   = "python main.py ";
                Trainercmd += qtdResponseBody.appId;
                Trainercmd += " ";
                Trainercmd += Regressor_Id;
                Trainercmd += " ";
                Trainercmd += filterTxt.Replace("\"", "\\\"");

                Command.runCmd(trainerDir, Trainercmd);

                Regressor insertRegressor = new Regressor();
                insertRegressor.RegressorId = Regressor_Id;
                insertRegressor.AppId       = qtdResponseBody.appId;
                insertRegressor.Filter      = filterTxt;
                insertRegressor.Insert();
            }

            //consultar
            qtdResponse.Qtd = new List <double>();
            string ConsultDir = conf.PredictorDir;
            string ConsultCmd = "python main.py ";

            ConsultCmd += qtdResponseBody.appId;
            ConsultCmd += " ";
            ConsultCmd += regressor.RegressorId;
            ConsultCmd += " ";
            ConsultCmd += qtdResponseBody.Min;
            ConsultCmd += " ";
            ConsultCmd += qtdResponseBody.Max;
            ConsultCmd += " ";
            ConsultCmd += qtdResponseBody.Step;

            string Image = Command.runCmd(ConsultDir, ConsultCmd);

            Models.App.Previsor previsor = JsonConvert.DeserializeObject <Models.App.Previsor>(Image);
            qtdResponse.Qtd = previsor.Prev;

            return(qtdResponse);
        }
Ejemplo n.º 2
0
 private void Start()
 {
     regressor = FindObjectOfType <Regressor>();
     if (regressor == null)
     {
         Debug.LogError("Could not find Regressor!");
     }
     dataSet = regressor.dataSet;
     if (dataSet == null)
     {
         Debug.LogError("Could not find dataSet on Regressor!");
     }
 }
Ejemplo n.º 3
0
        public double Predict(double spot)
        {
            if (Regressor == null)
            {
                lock (_threadlock)
                {
                    if (Regressor == null)
                    {
                        Regressor = PerformRegression();
                    }
                }
            }

            return(Regressor.Interpolate(spot));
        }
Ejemplo n.º 4
0
        public static void SimpleExampleLoadFromString()
        {
            var trainFile = Path.Combine(_dir, "regression", "regression.train");
            var testFile  = Path.Combine(_dir, "regression", "regression.test");
            var trainTpl  = GetDataAndLabel(trainFile);
            var testTpl   = GetDataAndLabel(testFile);

            var X_test = testTpl.Item1;
            var y_test = testTpl.Item2;

            var est = new Regressor()
            {
                BoostingType       = "gbdt",
                Metric             = new[] { Metric.l2, Metric.auc },
                NumLeaves          = 31,
                LearningRate       = 0.05,
                FeatureFraction    = 0.9,
                BaggingFraction    = 0.8,
                BaggingFreq        = 5,
                Verbose            = 1,
                EarlyStoppingRound = 5,
                NumIterations      = 20
            };
            var estDict = est.ToDictionary();
            var dsTrain = new Dataset(trainFile);
            var dsEval  = new Dataset(testFile, reference: dsTrain);

            var    res = new Dictionary <string, Dictionary <string, List <double> > >();
            string modelString;

            using (var bst = LightGBMSharp.LGBM.Train(est, dsTrain, res, dsEval))
            {
                Console.WriteLine("Save model...");
                bst.SaveModel("model.txt");
                modelString = bst.SaveModelToString();
            }

            using (var bst2 = Booster.LoadFromModelString(modelString))
            {
                Console.WriteLine("Start predicting...");
                var y_pred  = bst2.Predict(X_test, LGBMPredictType.PredictNormal);
                var mse     = Distance.MSE(y_test, y_pred);
                var y_predS = String.Join(", ", y_pred.Take(10));
                Console.WriteLine($"Pred == {y_predS}");
                Console.WriteLine($"The rmse of prediction is: {Math.Sqrt(mse)}");
            }
        }
Ejemplo n.º 5
0
        public static void SimpleExample()
        {
            var trainFile = Path.Combine(_dir, "regression", "regression.train");
            var testFile  = Path.Combine(_dir, "regression", "regression.test");

            //var testMatrix = DelimitedReader.Read<double>(testFile, false, "\t", false, CultureInfo.InvariantCulture);
            //var y_test = testMatrix.Column(0).ToArray();
            //var X_test = testMatrix.RemoveColumn(0).ToArray();

            var trainTpl = GetDataAndLabel(trainFile);
            var testTpl  = GetDataAndLabel(testFile);
            var X_test   = testTpl.Item1;
            var y_test   = testTpl.Item2;

            var est = new Regressor()
            {
                BoostingType       = "gbdt",
                Metric             = new[] { Metric.l2, Metric.auc },
                NumLeaves          = 31,
                LearningRate       = 0.05,
                FeatureFraction    = 0.9,
                BaggingFraction    = 0.8,
                BaggingFreq        = 5,
                Verbose            = 1,
                EarlyStoppingRound = 5,
                NumIterations      = 20
            };
            var estDict = est.ToDictionary();
            var dsTrain = new Dataset(trainFile);
            var dsEval  = new Dataset(testFile, reference: dsTrain);

            var res =
                new Dictionary <string, Dictionary <string, List <double> > >();
            var bst = LightGBMSharp.LGBM.Train(est, dsTrain, res, dsEval);

            Console.WriteLine("Save model...");
            bst.SaveModel("model.txt");

            Console.WriteLine("Start predicting...");
            var y_pred = bst.Predict(X_test, LGBMPredictType.PredictNormal);
            var mse    = Distance.MSE(y_test, y_pred);

            var y_predS = String.Join(", ", y_pred.Take(10));

            Console.WriteLine($"Pred == {y_predS}");
            Console.WriteLine($"The rmse of prediction is: {Math.Sqrt(mse)}");
        }
        public string TrainRegressor([FromQuery(Name = "Id")] string Id, [FromQuery(Name = "Hash")] string Hash)
        {
            string text = System.IO.File.ReadAllText(Location.ConfLocation);
            Conf   conf = JsonConvert.DeserializeObject <Conf>(text);

            Regressor regressor = new Regressor();

            regressor.LoadByHash(Hash);

            string trainerDir = conf.TrainerDir;
            string Trainercmd = "python main.py ";

            Trainercmd += Id;
            Trainercmd += " ";
            Trainercmd += regressor.RegressorId;
            Trainercmd += " ";
            Trainercmd += regressor.Filter.Replace("\"", "\\\"");

            Command.runCmd(trainerDir, Trainercmd);

            return("ok");
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Perform target alignment
        /// </summary>
        /// <param name="evidences">Evidences to align</param>
        /// <param name="baseline">Baseline evidences</param>
        /// <returns></returns>
        public LinearRegressionResult AlignTargets(List <Evidence> evidences, List <Evidence> baseline)
        {
            var observed  = new List <double>();
            var predicted = new List <double>();

            foreach (var evidence in baseline)
            {
                Predictor             = RetentionTimePredictorFactory.CreatePredictor(Options.PredictorType);
                evidence.PredictedNet = Predictor.GetElutionTime(Evidence.CleanSequence(evidence.Sequence));

                observed.Add(evidence.ObservedNet);
                predicted.Add(evidence.PredictedNet);
            }

            Regressor = LinearRegressorFactory.Create(Options.RegressionType);
            var result = Regressor.CalculateRegression(observed, predicted);

            foreach (var evidence in evidences)
            {
                evidence.ObservedNet = Regressor.Transform(result, evidence.ObservedNet);
            }

            return(result);
        }