- Timestamp:
- 06/28/16 13:33:17 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Nca/NcaModel.cs
r13921 r13941 30 30 [Item("NCA Model", "")] 31 31 [StorableClass] 32 public class NcaModel : NamedItem, INcaModel {33 public IEnumerable<string> VariablesUsedForPrediction {32 public class NcaModel : ClassificationModel, INcaModel { 33 public override IEnumerable<string> VariablesUsedForPrediction { 34 34 get { return allowedInputVariables; } 35 }36 37 public string TargetVariable {38 get { return targetVariable; }39 35 } 40 36 … … 46 42 [Storable] 47 43 private string[] allowedInputVariables; 48 [Storable]49 private string targetVariable;50 44 [Storable] 51 45 private INearestNeighbourModel nnModel; … … 59 53 this.transformationMatrix = (double[,])original.transformationMatrix.Clone(); 60 54 this.allowedInputVariables = (string[])original.allowedInputVariables.Clone(); 61 this.targetVariable = original.targetVariable;62 55 this.nnModel = cloner.Clone(original.nnModel); 63 56 this.classValues = (double[])original.classValues.Clone(); 64 57 } 65 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) { 66 60 Name = ItemName; 67 61 Description = ItemDescription; 68 62 this.transformationMatrix = (double[,])transformationMatrix.Clone(); 69 63 this.allowedInputVariables = allowedInputVariables.ToArray(); 70 this.targetVariable = targetVariable;71 64 this.classValues = (double[])classValues.Clone(); 72 65 … … 79 72 } 80 73 81 public IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) {74 public override IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) { 82 75 var ds = ReduceDataset(dataset, rows); 83 76 return nnModel.GetEstimatedClassValues(ds, Enumerable.Range(0, ds.Rows)); 84 77 } 85 78 86 public INcaClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) {87 return new NcaClassificationSolution( new ClassificationProblemData(problemData), this);79 public override IClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) { 80 return new NcaClassificationSolution(this, new ClassificationProblemData(problemData)); 88 81 } 89 82 90 I ClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) {91 return CreateClassificationSolution(problemData);83 INcaClassificationSolution INcaModel.CreateClassificationSolution(IClassificationProblemData problemData) { 84 return new NcaClassificationSolution(this, new ClassificationProblemData(problemData)); 92 85 } 93 86 … … 95 88 var data = AlglibUtil.PrepareInputMatrix(dataset, allowedInputVariables, rows); 96 89 97 var targets = dataset.GetDoubleValues( targetVariable, rows).ToArray();90 var targets = dataset.GetDoubleValues(TargetVariable, rows).ToArray(); 98 91 var result = new double[data.GetLength(0), transformationMatrix.GetLength(1) + 1]; 99 92 for (int i = 0; i < data.GetLength(0); i++) … … 111 104 .Range(0, transformationMatrix.GetLength(1)) 112 105 .Select(x => "X" + x.ToString()) 113 .Concat( targetVariable.ToEnumerable()),106 .Concat(TargetVariable.ToEnumerable()), 114 107 Reduce(dataset, rows)); 115 108 }
Note: See TracChangeset
for help on using the changeset viewer.