Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/29/16 10:36:52 (8 years ago)
Author:
pfleck
Message:

#2597

  • Merged recent trunk changes.
  • Adapted VariablesUsedForPrediction property for RegressionSolutionTargetResponseGradientView.
  • Fixed a reference (.dll to project ref).
Location:
branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis

  • branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/Nca/NcaModel.cs

    r12509 r13948  
    3030  [Item("NCA Model", "")]
    3131  [StorableClass]
    32   public class NcaModel : NamedItem, INcaModel {
     32  public class NcaModel : ClassificationModel, INcaModel {
     33    public override IEnumerable<string> VariablesUsedForPrediction {
     34      get { return allowedInputVariables; }
     35    }
    3336
    3437    [Storable]
     
    3942    [Storable]
    4043    private string[] allowedInputVariables;
    41     [Storable]
    42     private string targetVariable;
    4344    [Storable]
    4445    private INearestNeighbourModel nnModel;
     
    5253      this.transformationMatrix = (double[,])original.transformationMatrix.Clone();
    5354      this.allowedInputVariables = (string[])original.allowedInputVariables.Clone();
    54       this.targetVariable = original.targetVariable;
    5555      this.nnModel = cloner.Clone(original.nnModel);
    5656      this.classValues = (double[])original.classValues.Clone();
    5757    }
    58     public NcaModel(int k, double[,] transformationMatrix, IDataset dataset, IEnumerable<int> rows, string targetVariable, IEnumerable<string> allowedInputVariables, double[] classValues) {
     58    public NcaModel(int k, double[,] transformationMatrix, IDataset dataset, IEnumerable<int> rows, string targetVariable, IEnumerable<string> allowedInputVariables, double[] classValues)
     59      : base(targetVariable) {
    5960      Name = ItemName;
    6061      Description = ItemDescription;
    6162      this.transformationMatrix = (double[,])transformationMatrix.Clone();
    6263      this.allowedInputVariables = allowedInputVariables.ToArray();
    63       this.targetVariable = targetVariable;
    6464      this.classValues = (double[])classValues.Clone();
    6565
     
    7272    }
    7373
    74     public IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) {
     74    public override IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) {
    7575      var ds = ReduceDataset(dataset, rows);
    7676      return nnModel.GetEstimatedClassValues(ds, Enumerable.Range(0, ds.Rows));
    7777    }
    7878
    79     public INcaClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) {
    80       return new NcaClassificationSolution(new ClassificationProblemData(problemData), this);
     79    public override IClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) {
     80      return new NcaClassificationSolution(this, new ClassificationProblemData(problemData));
    8181    }
    8282
    83     IClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) {
    84       return CreateClassificationSolution(problemData);
     83    INcaClassificationSolution INcaModel.CreateClassificationSolution(IClassificationProblemData problemData) {
     84      return new NcaClassificationSolution(this, new ClassificationProblemData(problemData));
    8585    }
    8686
     
    8888      var data = AlglibUtil.PrepareInputMatrix(dataset, allowedInputVariables, rows);
    8989
    90       var targets = dataset.GetDoubleValues(targetVariable, rows).ToArray();
     90      var targets = dataset.GetDoubleValues(TargetVariable, rows).ToArray();
    9191      var result = new double[data.GetLength(0), transformationMatrix.GetLength(1) + 1];
    9292      for (int i = 0; i < data.GetLength(0); i++)
     
    104104          .Range(0, transformationMatrix.GetLength(1))
    105105          .Select(x => "X" + x.ToString())
    106           .Concat(targetVariable.ToEnumerable()),
     106          .Concat(TargetVariable.ToEnumerable()),
    107107        Reduce(dataset, rows));
    108108    }
Note: See TracChangeset for help on using the changeset viewer.