Changeset 7025
- Timestamp:
- 11/21/11 16:23:48 (13 years ago)
- Location:
- branches/RegressionBenchmarks
- Files:
-
- 47 added
- 8 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/Benchmark.cs
r6968 r7025 29 29 : base(original, cloner) { 30 30 } 31 32 public override IDeepCloneable Clone(Cloner cloner) { 33 throw new System.NotImplementedException(); 34 } 31 35 } 32 36 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/Generator/RegressionBenchmark.cs
r6991 r7025 20 20 #endregion 21 21 22 using System.Collections;23 22 using System.Collections.Generic; 24 23 using System.Linq; … … 31 30 32 31 #region properties 33 public abstract List<string> InputVariable { get; } 34 public abstract string TargetVariable { get; } 35 public abstract IntRange TrainingPartition { get; } 36 public abstract IntRange TestPartition { get; } 32 protected string targetVariable; 33 protected List<string> inputVariables; 34 protected IntRange trainingPartition; 35 protected IntRange testPartition; 36 37 public List<string> InputVariable { 38 get { return inputVariables; } 39 } 40 41 public string TargetVariable { 42 get { return targetVariable; } 43 } 44 45 public IntRange TrainingPartition { 46 get { return trainingPartition; } 47 } 48 49 public IntRange TestPartition { 50 get { return testPartition; } 51 } 37 52 #endregion 38 53 … … 42 57 } 43 58 44 protected abstract List<double> CalculateFunction( Dictionary<string, IList<double>> data);59 protected abstract List<double> CalculateFunction(List<List<double>> data); 45 60 46 protected abstract Dictionary<string, IList<double>> GenerateInput(Dictionary<string, IList<double>> data);61 protected abstract List<List<double>> GenerateInput(List<List<double>> dataList); 47 62 48 63 public IDataAnalysisProblemData GenerateProblemData() { 49 Dictionary<string, IList<double>> data = new Dictionary<string, IList<double>>(); 50 data.Add(this.TargetVariable, new List<double>()); 51 foreach (var variable in this.InputVariable) { 52 data.Add(variable, new List<double>()); 53 } 64 List<string> varNames = new List<string>(); 65 varNames.Add(this.TargetVariable); 66 varNames.AddRange(InputVariable); 54 67 55 data = GenerateInput(data);68 List<List<double>> dataList = GenerateInput(new List<List<double>>()); 56 69 57 List<IList> values = new List<IList>(); 58 foreach (var valueList in data.Values) { 59 values.Add((IList)valueList); 60 } 70 dataList.Insert(0, CalculateFunction(dataList)); 61 71 62 Dataset dataset = new Dataset(data.Keys, values); 63 dataset.Name = this.Name; 72 Dataset dataset = new Dataset(varNames, dataList); 64 73 65 74 RegressionProblemData problemData = new RegressionProblemData(dataset, dataset.DoubleVariables.Skip(1), dataset.DoubleVariables.First()); 66 75 67 76 problemData.Name = "Data generated for benchmark problem \"" + this.Name + "\""; 68 77 problemData.Description = this.Description; 69 78 70 79 problemData.TestPartition.Start = this.TestPartition.Start; … … 77 86 } 78 87 79 //private Dictionary<string, IList<double>> CalculateValues(Dictionary<string, IList<double>> data, DatasetDefinition dataDef) { 80 // Random rand = new Random(); 81 // var combinationDataSet = AllCombinationsOf(dataDef.RangeVariables.Values.Select(range => range.Values).ToList()); 82 // int index = 0; 83 // var help = dataDef.RangeVariables.Keys; 84 // foreach (var dataSet in combinationDataSet) { 85 // data[help.ElementAt(index)] = dataSet; 86 // index++; 87 // } 88 // List<string> vars = new List<string>(dataDef.RandomVariables.Keys); 89 // for (int i = 0; i < dataDef.AmountOfPoints; i++) { 90 // foreach (var variable in vars) { 91 // data[variable].Add(dataDef.RandomVariables[variable].Next()); 92 // } 93 // // data[TargetVariable].Add(CalculateFunction(data, vars)); 94 // } 95 // int bla = 0; 96 // var test = data.Values.Select((ind) => (ind.ElementAt(bla))); 97 98 // return data; 99 //} 100 101 public static List<double> generateSteps(DoubleRange range, double stepWidth) { 88 public static List<double> GenerateSteps(DoubleRange range, double stepWidth) { 102 89 return Enumerable.Range(0, (int)((range.End - range.Start) / stepWidth) + 1) 103 90 .Select(i => (range.Start + i * stepWidth)) … … 105 92 } 106 93 107 public static List<double> generateUniformDistributedValues(int amount, DoubleRange range) {94 public static List<double> GenerateUniformDistributedValues(int amount, DoubleRange range) { 108 95 List<double> values = new List<double>(); 109 96 System.Random rand = new System.Random(); … … 114 101 } 115 102 116 public static List<double> generateNormalDistributedValues(int amount, double mu, double sigma) {103 public static List<double> GenerateNormalDistributedValues(int amount, double mu, double sigma) { 117 104 List<double> values = new List<double>(); 118 105 FastRandom rand = new FastRandom(); … … 133 120 combinations = AddExtraSet(combinations, set); 134 121 122 combinations = (from i in Enumerable.Range(0, sets.Count) 123 select (from list in combinations 124 select list.ElementAt(i)).ToList<double>()).ToList<List<double>>(); 125 135 126 return combinations; 136 127 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/HeuristicLab.Problems.DataAnalysis.Benchmarks-3.4.csproj
r6991 r7025 51 51 <Compile Include="Plugin.cs" /> 52 52 <Compile Include="Properties\AssemblyInfo.cs" /> 53 <Compile Include="RegressionBenchmarks\KotanchekFunction.cs" /> 53 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionSixteen.cs" /> 54 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionFifteen.cs" /> 55 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionThirteen.cs" /> 56 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionTwelve.cs" /> 57 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionEight.cs" /> 58 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionSeven.cs" /> 59 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionSix.cs" /> 60 <Compile Include="RegressionBenchmarks\Korns\KornFunctionFiveteen.cs" /> 61 <Compile Include="RegressionBenchmarks\Korns\KornFunctionFourteen.cs" /> 62 <Compile Include="RegressionBenchmarks\Korns\KornFunctionThirteen.cs" /> 63 <Compile Include="RegressionBenchmarks\Korns\KornFunctionTwelve.cs" /> 64 <Compile Include="RegressionBenchmarks\Korns\KornFunctionEleven.cs" /> 65 <Compile Include="RegressionBenchmarks\Korns\KornFunctionTen.cs" /> 66 <Compile Include="RegressionBenchmarks\Korns\KornFunctionNine.cs" /> 67 <Compile Include="RegressionBenchmarks\Korns\KornFunctionEight.cs" /> 68 <Compile Include="RegressionBenchmarks\Korns\KornFunctionSeven.cs" /> 69 <Compile Include="RegressionBenchmarks\Korns\KornFunctionSix.cs" /> 70 <Compile Include="RegressionBenchmarks\Korns\KornFunctionFive.cs" /> 71 <Compile Include="RegressionBenchmarks\Korns\KornFunctionFour.cs" /> 72 <Compile Include="RegressionBenchmarks\Korns\KornFunctionThree.cs" /> 73 <Compile Include="RegressionBenchmarks\Korns\KornFunctionTwo.cs" /> 74 <Compile Include="RegressionBenchmarks\Korns\KornFunctionOne.cs" /> 75 <Compile Include="RegressionBenchmarks\Keijzer\KeijzerFunctionFour.cs" /> 76 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionTwelve.cs" /> 77 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionEleven.cs" /> 78 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionTen.cs" /> 79 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionNine.cs" /> 80 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionEight.cs" /> 81 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionSeven.cs" /> 82 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionSix.cs" /> 83 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionFive.cs" /> 84 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionFour.cs" /> 85 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionThree.cs" /> 86 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionTwo.cs" /> 87 <Compile Include="RegressionBenchmarks\Nguyen et al\NguyenFunctionOne.cs" /> 88 <Compile Include="RegressionBenchmarks\Vladislavleva et al\KotanchekFunction.cs" /> 54 89 <Compile Include="Generator\RegressionBenchmark.cs" /> 90 <Compile Include="RegressionBenchmarks\Vladislavleva et al\RationalPolynomialThreeDimensional.cs" /> 91 <Compile Include="RegressionBenchmarks\Vladislavleva et al\RationalPolynomialTwoDimensional.cs" /> 92 <Compile Include="RegressionBenchmarks\Vladislavleva et al\RippleFunction.cs" /> 93 <Compile Include="RegressionBenchmarks\Vladislavleva et al\SalustowiczFunctionOneDimensional.cs" /> 94 <Compile Include="RegressionBenchmarks\Vladislavleva et al\SalustowiczFunctionTwoDimensional.cs" /> 95 <Compile Include="RegressionBenchmarks\Vladislavleva et al\SineCosineFunction.cs" /> 96 <Compile Include="RegressionBenchmarks\Vladislavleva et al\UnwrappedBallFunctionFiveDimensional.cs" /> 55 97 </ItemGroup> 56 98 <ItemGroup> -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs
r6968 r7025 107 107 IDataAnalysisProblemData IDataAnalysisProblem.ProblemData { 108 108 get { return ProblemData; } 109 set { ProblemData = (T)value; } 110 109 111 } 110 112 public T ProblemData { -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Views/3.4/DataAnalysisProblemView.cs
r6968 r7025 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Linq; 24 25 using System.Windows.Forms; … … 58 59 private void loadButton_Click(object sender, EventArgs e) { 59 60 if (benchmarkComboBox.SelectedItem != null) 60 Content. CreateProblemDataFromBenchmark((IDataAnalysisBenchmarkProblemDataGenerator)benchmarkComboBox.SelectedItem);61 Content.ProblemData = ((IDataAnalysisBenchmarkProblemDataGenerator)benchmarkComboBox.SelectedItem).GenerateProblemData(); 61 62 } 62 63 … … 64 65 base.OnContentChanged(); 65 66 benchmarkComboBox.Items.Clear(); 66 benchmarkComboBox.Items.AddRange( Content.GetBenchmarkProblemDataGenerators().OrderBy(b => b.ItemName).ToArray());67 benchmarkComboBox.Items.AddRange(GetBenchmarkProblemDataGenerators().OrderBy(b => b.ItemName).ToArray()); 67 68 if (benchmarkComboBox.Items.Count > 0) 68 69 benchmarkComboBox.SelectedIndex = 0; 69 70 } 71 72 protected IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() { 73 if (Content is IRegressionProblem) 74 return ApplicationManager.Manager.GetInstances<IRegressionBenchmarkProblemDataGenerator>(); 75 else if (Content is IClassificationProblem) 76 return ApplicationManager.Manager.GetInstances<IClassificationBenchmarkProblemDataGenerator>(); 77 else if (Content is ITimeSeriesPrognosisProblem) 78 return ApplicationManager.Manager.GetInstances<ITimeSeriesBenchmarkProblemDataGenerator>(); 79 else if (Content is IClusteringProblem) 80 return ApplicationManager.Manager.GetInstances<IClusteringBenchmarkProblemDataGenerator>(); 81 return new List<IDataAnalysisBenchmarkProblemDataGenerator>(); 82 } 70 83 } 71 84 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs
r6968 r7025 20 20 #endregion 21 21 22 using System.Collections.Generic;23 22 using HeuristicLab.Common; 24 23 using HeuristicLab.Core; 25 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 using HeuristicLab.PluginInfrastructure;27 25 28 26 namespace HeuristicLab.Problems.DataAnalysis { … … 45 43 ProblemData = problemData; 46 44 } 47 48 public override void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator) {49 throw new System.NotImplementedException();50 }51 52 public override IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() {53 return ApplicationManager.Manager.GetInstances<IClassificationBenchmarkProblemDataGenerator>();54 }55 45 } 56 46 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblem.cs
r6968 r7025 23 23 using HeuristicLab.Core; 24 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 using HeuristicLab.PluginInfrastructure;26 25 27 26 namespace HeuristicLab.Problems.DataAnalysis { … … 44 43 ProblemData = problemData; 45 44 } 46 47 public override void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator) {48 throw new System.NotImplementedException();49 }50 51 public override System.Collections.Generic.IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() {52 return ApplicationManager.Manager.GetInstances<IClusteringBenchmarkProblemDataGenerator>();53 }54 45 } 55 46 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs
r6968 r7025 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using HeuristicLab.Common; 25 24 using HeuristicLab.Core; … … 46 45 IDataAnalysisProblemData IDataAnalysisProblem.ProblemData { 47 46 get { return ProblemData; } 47 set { ProblemData = (T)value; } 48 48 } 49 49 public T ProblemData { … … 93 93 94 94 public abstract void ImportProblemDataFromFile(string fileName); 95 96 public abstract void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator);97 98 public abstract IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators();99 95 } 100 96 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs
r6968 r7025 20 20 #endregion 21 21 22 using System;23 using System.Collections.Generic;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using HeuristicLab.PluginInfrastructure;28 25 29 26 namespace HeuristicLab.Problems.DataAnalysis { … … 46 43 ProblemData = problemData; 47 44 } 48 49 public override IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() {50 return ApplicationManager.Manager.GetInstances<IRegressionBenchmarkProblemDataGenerator>();51 }52 53 public override void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator) {54 if (!(benchmarkGenerator is IRegressionBenchmarkProblemDataGenerator)) {55 throw new ArgumentException("BenchmarkGenerator is not an IRegressionBenchmarkProblemDataGenerator.");56 }57 58 IDataAnalysisProblemData problemData = benchmarkGenerator.GenerateProblemData();59 60 if (problemData is IRegressionProblemData)61 ProblemData = (IRegressionProblemData)problemData;62 else63 throw new InvalidCastException("ProblemDataGenerator didn't return an IRegressionProblemData.");64 }65 45 } 66 46 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblem.cs
r6968 r7025 20 20 #endregion 21 21 22 using System.Collections.Generic;23 22 using HeuristicLab.Common; 24 23 using HeuristicLab.Core; 25 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 using HeuristicLab.PluginInfrastructure;27 25 28 26 namespace HeuristicLab.Problems.DataAnalysis { … … 45 43 ProblemData = problemData; 46 44 } 47 48 public override void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator) {49 throw new System.NotImplementedException();50 }51 52 public override IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() {53 return ApplicationManager.Manager.GetInstances<ITimeSeriesBenchmarkProblemDataGenerator>();54 }55 45 } 56 46 } -
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblem.cs
r6968 r7025 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using HeuristicLab.Core; 25 24 using HeuristicLab.Optimization; … … 28 27 public interface IDataAnalysisProblem : IProblem { 29 28 IParameter ProblemDataParameter { get; } 30 IDataAnalysisProblemData ProblemData { get; }29 IDataAnalysisProblemData ProblemData { get; set; } 31 30 event EventHandler ProblemDataChanged; 32 31 33 32 void ImportProblemDataFromFile(string fileName); 34 void CreateProblemDataFromBenchmark(IDataAnalysisBenchmarkProblemDataGenerator benchmarkGenerator);35 IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators();36 33 } 37 34
Note: See TracChangeset
for help on using the changeset viewer.