#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();
}
}
}