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); }
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!"); } }
public double Predict(double spot) { if (Regressor == null) { lock (_threadlock) { if (Regressor == null) { Regressor = PerformRegression(); } } } return(Regressor.Interpolate(spot)); }
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)}"); } }
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"); }
/// <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); }