using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using HeuristicLab.Algorithms.DataAnalysis.Experimental; using HeuristicLab.Problems.DataAnalysis; namespace Main { class Program { static void Main(string[] args) { var xs = HeuristicLab.Common.SequenceGenerator.GenerateSteps(-3.5, 3.5, 0.02, includeEnd: true).ToArray(); var ys = xs.Select(xi => (1.0 / (Math.Sqrt(2 * Math.PI)) * Math.Exp(-0.5 * xi * xi))).ToArray(); var ws = xs.Select(_ => 1.0).ToArray(); alglib.hqrndstate state; alglib.hqrndseed(1234, 5678, out state); var ys_noise = ys.Select(yi => yi + alglib.hqrndnormal(state) * 0.01).ToArray(); SBART.SBART_Report rep; SBART.CalculateSBART(xs, ys_noise, ws, 2, "y", new string[] { "x" }, out rep); // var provider = new HeuristicLab.Problems.Instances.DataAnalysis.VariousInstanceProvider(); // var problemData = provider.LoadData(provider.GetDataDescriptors().First(dd => dd.Name.Contains("Poly"))); var provider = new HeuristicLab.Problems.Instances.DataAnalysis.RegressionRealWorldInstanceProvider(); var problemData = provider.LoadData(provider.GetDataDescriptors().First(dd => dd.Name.Contains("Chem"))); var gam = new GAM(); gam.MaxIterations = 10; gam.MaxInteractions = 1; gam.Problem.ProblemData = problemData; gam.Start(); var solution = (IRegressionSolution)gam.Results["Ensemble solution"].Value; Console.WriteLine("RMSE (train) {0}", solution.TrainingRootMeanSquaredError); Console.WriteLine("RMSE (test) {0}", solution.TestRootMeanSquaredError); } } }