Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/10/17 12:56:36 (6 years ago)
Author:
bwerth
Message:

#2847 worked on M5Regression

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/M5Regression/HeuristicLab.Algorithms.DataAnalysis/3.4/M5Regression/MetaModels/ComponentReducedLinearModel.cs

    r15430 r15470  
    2121
    2222using System.Collections.Generic;
     23using System.Linq;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    3132    private IConfidenceRegressionModel Model;
    3233    [Storable]
    33     private PrincipleComponentAnalysisStatic Pca;
     34    private PrincipleComponentTransformation Pca;
    3435
    3536    [StorableConstructor]
     
    3940      Pca = cloner.Clone(original.Pca);
    4041    }
    41     public ComponentReducedLinearModel(string targetVariable, IConfidenceRegressionModel model, PrincipleComponentAnalysisStatic pca) : base(targetVariable) {
     42    public ComponentReducedLinearModel(string targetVariable, IConfidenceRegressionModel model, PrincipleComponentTransformation pca) : base(targetVariable) {
    4243      Model = model;
    4344      Pca = pca;
     
    5152    }
    5253    public override IEnumerable<double> GetEstimatedValues(IDataset dataset, IEnumerable<int> rows) {
    53       return Model.GetEstimatedValues(Pca.ProjectDataset(dataset), rows);
     54      var data = ReduceDataset(dataset, rows.ToArray());
     55      return Model.GetEstimatedValues(Pca.TransformDataset(data), Enumerable.Range(0, data.Rows));
    5456    }
    5557    public override IRegressionSolution CreateRegressionSolution(IRegressionProblemData problemData) {
     
    5759    }
    5860    public IEnumerable<double> GetEstimatedVariances(IDataset dataset, IEnumerable<int> rows) {
    59       return Model.GetEstimatedVariances(Pca.ProjectDataset(dataset), rows);
     61      var data = ReduceDataset(dataset, rows.ToArray());
     62      return Model.GetEstimatedVariances(Pca.TransformDataset(data), Enumerable.Range(0, data.Rows));
     63    }
     64
     65    private IDataset ReduceDataset(IDataset data, IReadOnlyList<int> rows) {
     66      return new Dataset(data.DoubleVariables, data.DoubleVariables.Select(v => data.GetDoubleValues(v, rows).ToList()));
    6067    }
    6168  }
Note: See TracChangeset for help on using the changeset viewer.