Changeset 10086 for branches/HeuristicLab.Problems.GPDL/Examples
- Timestamp:
- 10/27/13 20:17:17 (11 years ago)
- Location:
- branches/HeuristicLab.Problems.GPDL/Examples
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GPDL/Examples/symbreg HEAL.txt
r10061 r10086 5 5 double[] y; 6 6 string[] variableNames; 7 int[] rows; 7 8 Dictionary<string,int> nameToCol; 8 9 … … 19 20 20 21 double RSquared(IEnumerable<double> xs, IEnumerable<double> ys) { 21 HeuristicLab.Problems.DataAnalysis.OnlineCalculatorError error; 22 var r2 = HeuristicLab.Problems.DataAnalysis.OnlinePearsonsRSquaredCalculator.Calculate(xs, ys, out error); 23 if(error == HeuristicLab.Problems.DataAnalysis.OnlineCalculatorError.None) return r2; 24 else return 0.0; 25 } 22 // calculate Pearson's correlation in one pass over xs and ys 23 double sumx = 0.0; 24 double sumy = 0.0; 25 double sumxSq = 0.0; 26 double sumySq = 0.0; 27 double sumxy = 0.0; 28 int n = 0; 29 var xEnum = xs.GetEnumerator(); 30 var yEnum = ys.GetEnumerator(); 31 while(xEnum.MoveNext() & yEnum.MoveNext()) { 32 sumx += xEnum.Current; 33 sumy += yEnum.Current; 34 sumxSq += xEnum.Current * xEnum.Current; 35 sumySq += yEnum.Current * yEnum.Current; 36 sumxy += xEnum.Current * yEnum.Current; 37 n++; 38 } 39 System.Diagnostics.Debug.Assert(!(xEnum.MoveNext() | yEnum.MoveNext())); 40 41 double num; 42 double den; 43 double r = 0.0; 44 num = sumxy - ( ( sumx * sumy ) / n ); 45 den = Math.Sqrt( ( sumxSq - ( sumx*sumx ) / n ) * 46 ( sumySq - ( sumy*sumy ) / n ) ); 47 if(den > 0){ 48 r = num / den; 49 } 50 return r*r; 51 } 26 52 >> 27 53 … … 33 59 x = new double[n, 10]; 34 60 y = new double[n]; 35 for(int row = 0; row < 500; row++) {61 for(int row = 0; row < n; row++) { 36 62 for(int col = 0; col < 10; col++) { 37 63 x[row, col] = rand.NextDouble() * 2.0 - 1.0; … … 43 69 x[row, 2] * x[row, 5] + x[row, 9]; 44 70 } 71 72 rows = System.Linq.Enumerable.Range(0, n).ToArray(); 45 73 >> 46 74 … … 90 118 . 91 119 92 MAXIMIZE /* could also use the keyword MINIMIZE here */120 MAXIMIZE 93 121 << 94 var rows = System.Linq.Enumerable.Range(0, x.GetLength(0));95 122 var predicted = rows.Select(r => { 96 123 double result; -
branches/HeuristicLab.Problems.GPDL/Examples/symbreg Koza.txt
r10061 r10086 3 3 double[,] x; 4 4 double[] y; 5 int[] rows; 5 6 string[] variableNames; 7 double[] randomConsts; 8 6 9 Dictionary<string,int> nameToCol; 7 10 … … 18 21 19 22 double RSquared(IEnumerable<double> xs, IEnumerable<double> ys) { 20 HeuristicLab.Problems.DataAnalysis.OnlineCalculatorError error; 21 var r2 = HeuristicLab.Problems.DataAnalysis.OnlinePearsonsRSquaredCalculator.Calculate(xs, ys, out error); 22 if(error == HeuristicLab.Problems.DataAnalysis.OnlineCalculatorError.None) return r2; 23 else return 0.0; 24 } 23 // calculate Pearson's correlation in one pass over xs and ys 24 double sumx = 0.0; 25 double sumy = 0.0; 26 double sumxSq = 0.0; 27 double sumySq = 0.0; 28 double sumxy = 0.0; 29 int n = 0; 30 var xEnum = xs.GetEnumerator(); 31 var yEnum = ys.GetEnumerator(); 32 while(xEnum.MoveNext() & yEnum.MoveNext()) { 33 sumx += xEnum.Current; 34 sumy += yEnum.Current; 35 sumxSq += xEnum.Current * xEnum.Current; 36 sumySq += yEnum.Current * yEnum.Current; 37 sumxy += xEnum.Current * yEnum.Current; 38 n++; 39 } 40 System.Diagnostics.Debug.Assert(!(xEnum.MoveNext() | yEnum.MoveNext())); 41 42 double num; 43 double den; 44 double r = 0.0; 45 num = sumxy - ( ( sumx * sumy ) / n ); 46 den = Math.Sqrt( ( sumxSq - ( sumx*sumx ) / n ) * 47 ( sumySq - ( sumy*sumy ) / n ) ); 48 if(den > 0){ 49 r = num / den; 50 } 51 return r*r; 52 } 25 53 >> 26 54 … … 32 60 x = new double[n, 10]; 33 61 y = new double[n]; 34 for(int row = 0; row < 500; row++) {62 for(int row = 0; row < n; row++) { 35 63 for(int col = 0; col < 10; col++) { 36 64 x[row, col] = rand.NextDouble() * 2.0 - 1.0; … … 42 70 x[row, 2] * x[row, 5] + x[row, 9]; 43 71 } 72 73 rows = System.Linq.Enumerable.Range(0, n).ToArray(); 74 75 // generate 100 random constants in [-100.0 .. 100.0[ 76 randomConsts = Enumerable.Range(0, 100).Select(i => rand.NextDouble()*200.0 - 100.0).ToArray(); 44 77 >> 45 78 … … 55 88 ERC<<out double val>> 56 89 CONSTRAINTS 57 val IN RANGE <<-100>> .. <<100>>90 val IN SET << randomConsts >> 58 91 . 59 92 60 93 Var<<out string varName>> 61 94 CONSTRAINTS 62 varName IN SET <<variableNames>>95 varName IN SET << variableNames >> 63 96 . 64 97 … … 73 106 | Multiplication<<row, out val>> 74 107 | Var<<out varName>> SEM << val = GetValue(x, varName, row); >> 75 | ERC<<out val>>108 /* | ERC<<out val>> */ 76 109 . 77 110 … … 89 122 . 90 123 91 MAXIMIZE /* could also use the keyword MINIMIZE here */124 MAXIMIZE 92 125 << 93 var rows = System.Linq.Enumerable.Range(0, x.GetLength(0));94 126 var predicted = rows.Select(r => { 95 127 double result;
Note: See TracChangeset
for help on using the changeset viewer.