#region License Information /* HeuristicLab * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System.Collections; using System.Collections.Generic; using System.Linq; using HeuristicLab.Data; namespace HeuristicLab.Problems.DataAnalysis.Benchmarks { public class FinancialOne : RegressionRealWorldBenchmark { private const string fileName = "financial-I.csv"; public FinancialOne() { Name = "financial-I"; //Description = "Paper: Improving Symbolic Regression with Interval Arithmetic and Linear Scaling" + Environment.NewLine // + "Authors: Maarten Keijzer" + Environment.NewLine // + "Function: f(x) = log(x)" + Environment.NewLine // + "range(train): x = [0:1:100]" + Environment.NewLine // + "range(test): x = [0:0.1:100]" + Environment.NewLine // + "Function Set: x + y, x * y, 1/x, -x, sqrt(x)"; } protected override List GetData() { csvFileParser = RegressionRealWorldBenchmark.getParserForFile(fileName); targetVariable = csvFileParser.VariableNames.Last(); inputVariables = new List(csvFileParser.VariableNames.Take(csvFileParser.Columns - 1)); int trainingPartEnd = csvFileParser.Rows * 2 / 3; trainingPartition = new IntRange(0, trainingPartEnd); testPartition = new IntRange(trainingPartEnd + 1, csvFileParser.Rows); return csvFileParser.Values.Skip(csvFileParser.Columns - 1).Union(csvFileParser.Values.Take(csvFileParser.Columns - 1)).ToList(); } } }