Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/DatasetShuffler.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/DatasetShuffler.cs (revision 1245)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/DatasetShuffler.cs (revision 1245)
@@ -0,0 +1,58 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.DataAnalysis {
+ public class DatasetShuffler : OperatorBase {
+ public DatasetShuffler()
+ : base() {
+ AddVariableInfo(new VariableInfo("Dataset", "Dataset which should be shuffled (random row order)", typeof(Dataset), VariableKind.In | VariableKind.Out));
+ AddVariableInfo(new VariableInfo("Random", "Randomizer", typeof(MersenneTwister), VariableKind.In));
+ }
+
+ public override IOperation Apply(IScope scope) {
+ Dataset dataset = GetVariableValue("Dataset", scope, true);
+ MersenneTwister tw = GetVariableValue("Random", scope, true);
+
+ for(int i = 0; i < dataset.Rows - 1; i++) {
+ int j = tw.Next(i, dataset.Rows);
+ ExchangeRows(dataset, i, j);
+ }
+
+ return null;
+ }
+
+ private void ExchangeRows(Dataset dataset, int i, int j) {
+ for(int k = 0; k < dataset.Columns; k++) {
+ double temp = dataset.GetValue(i, k);
+ dataset.SetValue(i, k, dataset.GetValue(j, k));
+ dataset.SetValue(j, k, temp);
+ }
+ }
+ }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj (revision 1245)
@@ -71,4 +71,5 @@
+
UserControl
@@ -97,7 +98,15 @@
HeuristicLab.Data
+
+ {A9983BA2-B3B2-475E-8E2C-62050B71D1C5}
+ HeuristicLab.Operators
+
{94186A6A-5176-4402-AE83-886557B53CCA}
HeuristicLab.PluginInfrastructure
+
+
+ {47019A74-F7F7-482E-83AA-D3F4F777E879}
+ HeuristicLab.Random
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/DatasetShuffler.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/DatasetShuffler.cs (revision 1244)
+++ (revision )
@@ -1,60 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.GP.StructureIdentification;
-using HeuristicLab.DataAnalysis;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.GP.StructureIdentification.Classification {
- public class DatasetShuffler : OperatorBase {
- public DatasetShuffler()
- : base() {
- AddVariableInfo(new VariableInfo("Dataset", "Dataset which should be shuffled (random row order)", typeof(Dataset), VariableKind.In | VariableKind.Out));
- AddVariableInfo(new VariableInfo("Random", "Randomizer", typeof(MersenneTwister), VariableKind.In));
- }
-
- public override IOperation Apply(IScope scope) {
- Dataset dataset = GetVariableValue("Dataset", scope, true);
- MersenneTwister tw = GetVariableValue("Random", scope, true);
-
- for(int i = 0; i < dataset.Rows - 1; i++) {
- int j = tw.Next(i, dataset.Rows);
- ExchangeRows(dataset, i, j);
- }
-
- return null;
- }
-
- private void ExchangeRows(Dataset dataset, int i, int j) {
- for(int k = 0; k < dataset.Columns; k++) {
- double temp = dataset.GetValue(i, k);
- dataset.SetValue(i, k, dataset.GetValue(j, k));
- dataset.SetValue(j, k, temp);
- }
- }
- }
-}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/HeuristicLab.GP.StructureIdentification.Classification.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/HeuristicLab.GP.StructureIdentification.Classification.csproj (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/HeuristicLab.GP.StructureIdentification.Classification.csproj (revision 1245)
@@ -67,5 +67,4 @@
-
@@ -73,6 +72,8 @@
+
+
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/OffspringSelectionGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/OffspringSelectionGP.cs (revision 1245)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/OffspringSelectionGP.cs (revision 1245)
@@ -0,0 +1,73 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using System.Diagnostics;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.GP.StructureIdentification.Classification {
+ public class OffspringSelectionGP : HeuristicLab.GP.StructureIdentification.OffspringSelectionGP {
+ protected override IOperator CreateBestSolutionProcessor() {
+ IOperator seq = base.CreateBestSolutionProcessor();
+ AccuracyEvaluator trainingAccuracy = new AccuracyEvaluator();
+ trainingAccuracy.GetVariableInfo("Accuracy").ActualName = "TrainingAccuracy";
+ trainingAccuracy.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingAccuracy.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+
+ AccuracyEvaluator validationAccuracy = new AccuracyEvaluator();
+ validationAccuracy.GetVariableInfo("Accuracy").ActualName = "ValidationAccuracy";
+ validationAccuracy.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationAccuracy.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+
+ AccuracyEvaluator testAccuracy = new AccuracyEvaluator();
+ testAccuracy.GetVariableInfo("Accuracy").ActualName = "TestAccuracy";
+ testAccuracy.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testAccuracy.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+
+ ConfusionMatrixEvaluator trainingConfusionMatrix = new ConfusionMatrixEvaluator();
+ trainingConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "TrainingConfusionMatrix";
+ trainingConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+
+ ConfusionMatrixEvaluator validationConfusionMatrix = new ConfusionMatrixEvaluator();
+ validationConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "ValidationConfusionMatrix";
+ validationConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+
+ ConfusionMatrixEvaluator testConfusionMatrix = new ConfusionMatrixEvaluator();
+ testConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "TestConfusionMatrix";
+ testConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+
+ seq.AddSubOperator(trainingAccuracy);
+ seq.AddSubOperator(validationAccuracy);
+ seq.AddSubOperator(testAccuracy);
+ return seq;
+ }
+ }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/StandardGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/StandardGP.cs (revision 1245)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.Classification/StandardGP.cs (revision 1245)
@@ -0,0 +1,73 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using System.Diagnostics;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.GP.StructureIdentification.Classification {
+ public class StandardGP : HeuristicLab.GP.StructureIdentification.StandardGP {
+ protected override IOperator CreateBestSolutionProcessor() {
+ IOperator seq = base.CreateBestSolutionProcessor();
+ AccuracyEvaluator trainingAccuracy = new AccuracyEvaluator();
+ trainingAccuracy.GetVariableInfo("Accuracy").ActualName = "TrainingAccuracy";
+ trainingAccuracy.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingAccuracy.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+
+ AccuracyEvaluator validationAccuracy = new AccuracyEvaluator();
+ validationAccuracy.GetVariableInfo("Accuracy").ActualName = "ValidationAccuracy";
+ validationAccuracy.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationAccuracy.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+
+ AccuracyEvaluator testAccuracy = new AccuracyEvaluator();
+ testAccuracy.GetVariableInfo("Accuracy").ActualName = "TestAccuracy";
+ testAccuracy.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testAccuracy.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+
+ ConfusionMatrixEvaluator trainingConfusionMatrix = new ConfusionMatrixEvaluator();
+ trainingConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "TrainingConfusionMatrix";
+ trainingConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+
+ ConfusionMatrixEvaluator validationConfusionMatrix = new ConfusionMatrixEvaluator();
+ validationConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "ValidationConfusionMatrix";
+ validationConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+
+ ConfusionMatrixEvaluator testConfusionMatrix = new ConfusionMatrixEvaluator();
+ testConfusionMatrix.GetVariableInfo("ConfusionMatrix").ActualName = "TestConfusionMatrix";
+ testConfusionMatrix.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testConfusionMatrix.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+
+ seq.AddSubOperator(trainingAccuracy);
+ seq.AddSubOperator(validationAccuracy);
+ seq.AddSubOperator(testAccuracy);
+ return seq;
+ }
+ }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/HeuristicLab.GP.StructureIdentification.TimeSeries.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/HeuristicLab.GP.StructureIdentification.TimeSeries.csproj (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/HeuristicLab.GP.StructureIdentification.TimeSeries.csproj (revision 1245)
@@ -69,6 +69,8 @@
+
+
@@ -98,4 +100,8 @@
HeuristicLab.GP
+
+ {A9983BA2-B3B2-475E-8E2C-62050B71D1C5}
+ HeuristicLab.Operators
+
{94186A6A-5176-4402-AE83-886557B53CCA}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/OffspringSelectionGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/OffspringSelectionGP.cs (revision 1245)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/OffspringSelectionGP.cs (revision 1245)
@@ -0,0 +1,72 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using System.Diagnostics;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Data;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.GP.StructureIdentification.TimeSeries {
+ public class OffspringSelectionGP : HeuristicLab.GP.StructureIdentification.OffspringSelectionGP {
+ protected override IOperator CreateFunctionLibraryInjector() {
+ return new FunctionLibraryInjector();
+ }
+
+ protected override IOperator CreateBestSolutionProcessor() {
+ IOperator seq = base.CreateBestSolutionProcessor();
+ TheilInequalityCoefficientEvaluator trainingTheil = new TheilInequalityCoefficientEvaluator();
+ trainingTheil.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingTheil.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TrainingTheilInequalityCoefficient";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TrainingTheilInequalityCoefficientBias";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TrainingTheilInequalityCoefficientVariance";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TrainingTheilInequalityCoefficientCovariance";
+
+ TheilInequalityCoefficientEvaluator validationTheil = new TheilInequalityCoefficientEvaluator();
+ validationTheil.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationTheil.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "ValidationTheilInequalityCoefficient";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "ValidationTheilInequalityCoefficientBias";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "ValidationTheilInequalityCoefficientVariance";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "ValidationTheilInequalityCoefficientCovariance";
+
+ TheilInequalityCoefficientEvaluator testTheil = new TheilInequalityCoefficientEvaluator();
+ testTheil.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testTheil.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+ testTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TestTheilInequalityCoefficient";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TestTheilInequalityCoefficientBias";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TestTheilInequalityCoefficientVariance";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TestTheilInequalityCoefficientCovariance";
+
+ seq.AddSubOperator(trainingTheil);
+ seq.AddSubOperator(validationTheil);
+ seq.AddSubOperator(testTheil);
+
+ return seq;
+ }
+ }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/StandardGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/StandardGP.cs (revision 1245)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification.TimeSeries/StandardGP.cs (revision 1245)
@@ -0,0 +1,71 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using System.Diagnostics;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.GP.StructureIdentification.TimeSeries {
+ public class StandardGP : HeuristicLab.GP.StructureIdentification.StandardGP {
+ protected override IOperator CreateFunctionLibraryInjector() {
+ return new FunctionLibraryInjector();
+ }
+
+ protected override IOperator CreateBestSolutionProcessor() {
+ IOperator seq = base.CreateBestSolutionProcessor();
+ TheilInequalityCoefficientEvaluator trainingTheil = new TheilInequalityCoefficientEvaluator();
+ trainingTheil.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingTheil.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TrainingTheilInequalityCoefficient";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TrainingTheilInequalityCoefficientBias";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TrainingTheilInequalityCoefficientVariance";
+ trainingTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TrainingTheilInequalityCoefficientCovariance";
+
+ TheilInequalityCoefficientEvaluator validationTheil = new TheilInequalityCoefficientEvaluator();
+ validationTheil.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationTheil.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "ValidationTheilInequalityCoefficient";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "ValidationTheilInequalityCoefficientBias";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "ValidationTheilInequalityCoefficientVariance";
+ validationTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "ValidationTheilInequalityCoefficientCovariance";
+
+ TheilInequalityCoefficientEvaluator testTheil = new TheilInequalityCoefficientEvaluator();
+ testTheil.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
+ testTheil.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
+ testTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TestTheilInequalityCoefficient";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TestTheilInequalityCoefficientBias";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TestTheilInequalityCoefficientVariance";
+ testTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TestTheilInequalityCoefficientCovariance";
+
+ seq.AddSubOperator(trainingTheil);
+ seq.AddSubOperator(validationTheil);
+ seq.AddSubOperator(testTheil);
+
+ return seq;
+ }
+ }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/AlgorithmBase.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/AlgorithmBase.cs (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/AlgorithmBase.cs (revision 1245)
@@ -112,5 +112,5 @@
}
- internal virtual CombinedOperator CreateAlgorithm() {
+ protected internal virtual CombinedOperator CreateAlgorithm() {
CombinedOperator algo = new CombinedOperator();
algo.Name = "GP";
@@ -164,13 +164,13 @@
}
- internal abstract IOperator CreateSelector();
-
- internal abstract IOperator CreateCrossover();
-
- internal abstract IOperator CreateTreeCreator();
-
- internal abstract IOperator CreateFunctionLibraryInjector();
-
- internal virtual IOperator CreateGlobalInjector() {
+ protected internal abstract IOperator CreateSelector();
+
+ protected internal abstract IOperator CreateCrossover();
+
+ protected internal abstract IOperator CreateTreeCreator();
+
+ protected internal abstract IOperator CreateFunctionLibraryInjector();
+
+ protected internal virtual IOperator CreateGlobalInjector() {
VariableInjector injector = new VariableInjector();
injector.Name = "Global Injector";
@@ -190,7 +190,7 @@
}
- internal abstract IOperator CreateManipulator();
-
- internal virtual IOperator CreateInitialization() {
+ protected internal abstract IOperator CreateManipulator();
+
+ protected internal virtual IOperator CreateInitialization() {
CombinedOperator init = new CombinedOperator();
init.Name = "Initialization";
@@ -231,5 +231,5 @@
}
- internal virtual IOperator CreateMainLoop() {
+ protected internal virtual IOperator CreateMainLoop() {
CombinedOperator main = new CombinedOperator();
SequentialProcessor seq = new SequentialProcessor();
@@ -268,9 +268,9 @@
}
- internal virtual IOperator CreateLoggingOperator() {
+ protected internal virtual IOperator CreateLoggingOperator() {
return new EmptyOperator();
}
- internal virtual IOperator CreateLoopCondition(IOperator loop) {
+ protected internal virtual IOperator CreateLoopCondition(IOperator loop) {
SequentialProcessor seq = new SequentialProcessor();
seq.Name = "Loop Condition";
@@ -289,9 +289,9 @@
}
- internal virtual IOperator CreateBestSolutionProcessor() {
+ protected internal virtual IOperator CreateBestSolutionProcessor() {
return new EmptyOperator();
}
- internal virtual IOperator CreateReplacement() {
+ protected internal virtual IOperator CreateReplacement() {
CombinedOperator replacement = new CombinedOperator();
replacement.Name = "Replacement";
@@ -327,5 +327,5 @@
}
- internal virtual IOperator CreateChildCreater() {
+ protected internal virtual IOperator CreateChildCreater() {
CombinedOperator childCreater = new CombinedOperator();
childCreater.Name = "Create children";
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/OffspringSelectionGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/OffspringSelectionGP.cs (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/OffspringSelectionGP.cs (revision 1245)
@@ -72,5 +72,5 @@
}
- internal override IOperator CreateGlobalInjector() {
+ protected internal override IOperator CreateGlobalInjector() {
VariableInjector injector = (VariableInjector)base.CreateGlobalInjector();
injector.RemoveVariable("TournamentSize");
@@ -83,5 +83,5 @@
}
- internal override IOperator CreateSelector() {
+ protected internal override IOperator CreateSelector() {
CombinedOperator selector = new CombinedOperator();
selector.Name = "Selector";
@@ -113,5 +113,5 @@
}
- internal override IOperator CreateChildCreater() {
+ protected internal override IOperator CreateChildCreater() {
CombinedOperator childCreater = new CombinedOperator();
childCreater.Name = "Create children";
@@ -187,5 +187,5 @@
}
- internal override IOperator CreateLoopCondition(IOperator loop) {
+ protected internal override IOperator CreateLoopCondition(IOperator loop) {
SequentialProcessor seq = new SequentialProcessor();
seq.Name = "Loop Condition";
@@ -215,5 +215,5 @@
}
- internal override IOperator CreateLoggingOperator() {
+ protected internal override IOperator CreateLoggingOperator() {
CombinedOperator loggingOperator = new CombinedOperator();
loggingOperator.Name = "Logging";
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs (revision 1244)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs (revision 1245)
@@ -83,5 +83,4 @@
FullTreeShakingFactor = 0.1;
OnePointShakingFactor = 1.0;
-
Engine = new SequentialEngine.SequentialEngine();
IOperator algo = CreateAlgorithm();
@@ -90,5 +89,5 @@
}
- internal override IOperator CreateSelector() {
+ protected internal override IOperator CreateSelector() {
TournamentSelector selector = new TournamentSelector();
selector.Name = "Selector";
@@ -100,5 +99,5 @@
}
- internal override IOperator CreateGlobalInjector() {
+ protected internal override IOperator CreateGlobalInjector() {
VariableInjector globalInjector = (VariableInjector)base.CreateGlobalInjector();
globalInjector.AddVariable(new HeuristicLab.Core.Variable("TournamentSize", tournamentSize));
@@ -107,5 +106,5 @@
}
- internal override IOperator CreateCrossover() {
+ protected internal override IOperator CreateCrossover() {
StandardCrossOver crossover = new StandardCrossOver();
crossover.Name = "Crossover";
@@ -114,5 +113,5 @@
}
- internal override IOperator CreateTreeCreator() {
+ protected internal override IOperator CreateTreeCreator() {
ProbabilisticTreeCreator treeCreator = new ProbabilisticTreeCreator();
treeCreator.Name = "Tree generator";
@@ -123,9 +122,9 @@
}
- internal override IOperator CreateFunctionLibraryInjector() {
+ protected internal override IOperator CreateFunctionLibraryInjector() {
return new FunctionLibraryInjector();
}
- internal override IOperator CreateManipulator() {
+ protected internal override IOperator CreateManipulator() {
CombinedOperator manipulator = new CombinedOperator();
manipulator.Name = "Manipulator";
@@ -169,5 +168,5 @@
}
- internal override IOperator CreateBestSolutionProcessor() {
+ protected internal override IOperator CreateBestSolutionProcessor() {
SequentialProcessor bestSolutionProcessor = new SequentialProcessor();
MeanAbsolutePercentageErrorEvaluator trainingMapeEvaluator = new MeanAbsolutePercentageErrorEvaluator();
@@ -181,4 +180,14 @@
validationMapeEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
validationMapeEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+ MeanAbsolutePercentageOfRangeErrorEvaluator trainingMapreEvaluator = new MeanAbsolutePercentageOfRangeErrorEvaluator();
+ trainingMapreEvaluator.Name = "TrainingMapreEvaluator";
+ trainingMapreEvaluator.GetVariableInfo("MAPRE").ActualName = "TrainingMAPRE";
+ trainingMapreEvaluator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+ trainingMapreEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+ MeanAbsolutePercentageOfRangeErrorEvaluator validationMapreEvaluator = new MeanAbsolutePercentageOfRangeErrorEvaluator();
+ validationMapreEvaluator.Name = "ValidationMapreEvaluator";
+ validationMapreEvaluator.GetVariableInfo("MAPRE").ActualName = "ValidationMAPRE";
+ validationMapreEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+ validationMapreEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
ProgrammableOperator progOperator = new ProgrammableOperator();
progOperator.RemoveVariableInfo("Result");
@@ -190,9 +199,11 @@
bestSolutionProcessor.AddSubOperator(trainingMapeEvaluator);
bestSolutionProcessor.AddSubOperator(validationMapeEvaluator);
+ bestSolutionProcessor.AddSubOperator(trainingMapreEvaluator);
+ bestSolutionProcessor.AddSubOperator(validationMapreEvaluator);
bestSolutionProcessor.AddSubOperator(progOperator);
return bestSolutionProcessor;
}
- internal override IOperator CreateLoggingOperator() {
+ protected internal override IOperator CreateLoggingOperator() {
CombinedOperator loggingOperator = new CombinedOperator();
loggingOperator.Name = "Logging";