Changeset 9931 for stable/HeuristicLab.Problems.DataAnalysis.Symbolic
- Timestamp:
- 09/03/13 15:46:01 (11 years ago)
- Location:
- stable
- Files:
-
- 5 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 9587,9590,9600,9607,9626,9658-9659,9699,9906
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionExcelFormatter.cs
r9587 r9931 23 23 using System.Collections.Generic; 24 24 using System.Globalization; 25 using System.Linq; 25 26 using System.Text; 26 27 using HeuristicLab.Common; … … 66 67 return string.Format("${0}1", variableNameMapping[variabelName]); 67 68 } 68 69 69 public string Format(ISymbolicExpressionTree symbolicExpressionTree) { 70 return Format(symbolicExpressionTree, null); 71 } 72 73 public string Format(ISymbolicExpressionTree symbolicExpressionTree, Dataset dataset) { 70 74 var stringBuilder = new StringBuilder(); 75 if (dataset != null) CalculateVariableMapping(symbolicExpressionTree, dataset); 76 71 77 stringBuilder.Append("="); 72 78 stringBuilder.Append(FormatRecursively(symbolicExpressionTree.Root)); 79 73 80 foreach (var variable in variableNameMapping) { 74 81 stringBuilder.AppendLine(); … … 76 83 } 77 84 return stringBuilder.ToString(); 85 } 86 87 private void CalculateVariableMapping(ISymbolicExpressionTree tree, Dataset dataset) { 88 int columnIndex = 0; 89 int inputIndex = 0; 90 var usedVariables = tree.IterateNodesPrefix().OfType<VariableTreeNode>().Select(v => v.VariableName).Distinct(); 91 foreach (var variable in dataset.VariableNames) { 92 columnIndex++; 93 if (!usedVariables.Contains(variable)) continue; 94 inputIndex++; 95 variableNameMapping[variable] = GetExcelColumnName(inputIndex); 96 } 78 97 } 79 98 … … 137 156 stringBuilder.Append(")"); 138 157 } else if (symbol is Logarithm) { 139 stringBuilder.Append("L OG(");140 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 141 stringBuilder.Append(" , EXP(1))"); // Excel does not use the natural logarithm, therefor the base has to be set158 stringBuilder.Append("LN("); 159 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 160 stringBuilder.Append(")"); 142 161 } else if (symbol is Multiplication) { 143 162 for (int i = 0; i < node.SubtreeCount; i++) { -
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj
r9862 r9931 139 139 <Compile Include="Crossovers\SymbolicDataAnalysisExpressionProbabilisticFunctionalCrossover.cs" /> 140 140 <Compile Include="Crossovers\SymbolicDataAnalysisExpressionSemanticSimilarityCrossover.cs" /> 141 <Compile Include="Formatters\SymbolicDataAnalysisExpressionSmalltalkFormatter.cs" /> 141 <Compile Include="Formatters\SymbolicDataAnalysisExpressionExcelFormatter.cs" /> 142 <Compile Include="Formatters\SymbolicDataAnalysisExpressionSmalltalkFormatter.cs" /> 142 143 <Compile Include="Interfaces\ISymbolicDataAnalysisExpressionCrossover.cs" /> 143 144 <Compile Include="Interfaces\ISymbolicDataAnalysisImpactValuesCalculator.cs" /> -
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisModel.cs
r9456 r9931 25 25 ISymbolicExpressionTree SymbolicExpressionTree { get; } 26 26 ISymbolicDataAnalysisExpressionTreeInterpreter Interpreter { get; } 27 28 double LowerEstimationLimit { get; } 29 double UpperEstimationLimit { get; } 27 30 } 28 31 } -
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisModel.cs
r9456 r9931 38 38 39 39 #region properties 40 [Storable] 41 private double lowerEstimationLimit; 42 public double LowerEstimationLimit { get { return lowerEstimationLimit; } } 43 [Storable] 44 private double upperEstimationLimit; 45 public double UpperEstimationLimit { get { return upperEstimationLimit; } } 40 46 41 47 [Storable] … … 50 56 get { return interpreter; } 51 57 } 52 53 58 #endregion 54 59 … … 59 64 this.symbolicExpressionTree = cloner.Clone(original.symbolicExpressionTree); 60 65 this.interpreter = cloner.Clone(original.interpreter); 66 this.lowerEstimationLimit = original.lowerEstimationLimit; 67 this.upperEstimationLimit = original.upperEstimationLimit; 61 68 } 62 public SymbolicDataAnalysisModel(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter) 69 protected SymbolicDataAnalysisModel(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 70 double lowerEstimationLimit, double upperEstimationLimit) 63 71 : base() { 64 72 this.name = ItemName; … … 66 74 this.symbolicExpressionTree = tree; 67 75 this.interpreter = interpreter; 76 this.lowerEstimationLimit = lowerEstimationLimit; 77 this.upperEstimationLimit = upperEstimationLimit; 68 78 } 69 79
Note: See TracChangeset
for help on using the changeset viewer.