Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/20/16 16:38:54 (8 years ago)
Author:
gkronber
Message:

#745: first version of elastic-net alg that runs in HL

Location:
branches/HeuristicLab.Algorithms.DataAnalysis.Glmnet/3.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Algorithms.DataAnalysis.Glmnet/3.4

    • Property svn:ignore set to
      .vs
      bin
      *.user
      obj
      Plugin.cs
  • branches/HeuristicLab.Algorithms.DataAnalysis.Glmnet/3.4/ElasticNetLinearRegression.cs

    r13927 r13928  
    5858      var nCoeff = coeff.GetLength(1);
    5959      var dataRows = new DataRow[nCoeff];
     60      var allowedVars = Problem.ProblemData.AllowedInputVariables.ToArray();
    6061      for (int i = 0; i < nCoeff; i++) {
    61         var coeffId = string.Format("c_{0}", i);
    62         dataRows[i] = new DataRow(coeffId, coeffId, Enumerable.Range(0, nLambdas).Select(r => coeff[r, i]).ToArray());
     62        var coeffId = allowedVars[i];
     63        var path = Enumerable.Range(0, nLambdas).Select(r => coeff[r, i]).ToArray();
     64        dataRows[i] = new DataRow(coeffId, coeffId, path);
    6365        coeffTable.Rows.Add(dataRows[i]);
    6466      }
     
    6870      var rsqTable = new DataTable("R-Squared", "Path of R² values over different lambda values");
    6971      rsqTable.Rows.Add(new DataRow("R-Squared", "Path of R² values over different lambda values", rsq));
    70       Results.Add(new Result(rsqTable.Name, rsqTable.Description, coeffTable));
    71     }
    72 
    73     //     private static void TestTower() {
    74     //       var prov = new HeuristicLab.Problems.Instances.DataAnalysis.RegressionRealWorldInstanceProvider();
    75     //       var towerDesc = prov.GetDataDescriptors().Where(dd => dd.Name.Contains("Tower")).Single();
    76     //       try {
    77     //         var problemData = prov.LoadData(towerDesc);
    78     //
    79     //         double[] lambda;
    80     //         double[] rsq;
    81     //         double[,] coeff;
    82     //         double[] intercept;
    83     //         RunElasticNetLinearRegression(problemData, 0.5, out lambda, out rsq, out coeff, out intercept);
    84     //
    85     //         for (int i = 0; i < rsq.Length; i++) {
    86     //           Console.WriteLine(rsq[i]);
    87     //         }
    88     //
    89     //         double rsq0;
    90     //         CreateElasticNetLinearRegressionSolution(problemData, 0.5, lambda.Skip(20).First(), out rsq0);
    91     //
    92     //         CreateElasticNetLinearRegressionSolution(problemData, 0.5, lambda.Skip(20).Take(10).ToArray(), out rsq);
    93     //
    94     //
    95     //       }
    96     //       catch (Exception e) {
    97     //       }
    98     //     }
     72      Results.Add(new Result(rsqTable.Name, rsqTable.Description, rsqTable));
     73    }
    9974
    10075    public static double[] CreateElasticNetLinearRegressionSolution(IRegressionProblemData problemData, double penalty, double lambda,
Note: See TracChangeset for help on using the changeset viewer.