Changeset 5736 for branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/DiscriminantFunctionClassificationModel.cs
- Timestamp:
- 03/17/11 15:14:45 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/DiscriminantFunctionClassificationModel.cs
r5730 r5736 40 40 [Storable] 41 41 private IRegressionModel model; 42 42 43 [Storable] 43 44 private double[] classValues; 44 // class values are not necessarily sorted in ascending order45 45 public IEnumerable<double> ClassValues { 46 46 get { return (double[])classValues.Clone(); } 47 set { 48 if (value == null) throw new ArgumentException(); 49 double[] newValue = value.ToArray(); 50 if (newValue.Length != classValues.Length) throw new ArgumentException(); 51 classValues = newValue; 52 } 47 private set { classValues = value.ToArray(); } 53 48 } 49 54 50 [Storable] 55 51 private double[] thresholds; 56 52 public IEnumerable<double> Thresholds { 57 53 get { return (IEnumerable<double>)thresholds.Clone(); } 58 set { 59 thresholds = value.ToArray(); 60 OnThresholdsChanged(EventArgs.Empty); 61 } 54 private set { thresholds = value.ToArray(); } 62 55 } 63 56 … … 71 64 thresholds = (double[])original.thresholds.Clone(); 72 65 } 73 public DiscriminantFunctionClassificationModel(IRegressionModel model, IEnumerable<double> classValues, IEnumerable<double> thresholds) 66 67 public DiscriminantFunctionClassificationModel(IRegressionModel model) 74 68 : base() { 75 69 this.name = ItemName; 76 70 this.description = ItemDescription; 77 71 this.model = model; 78 this.classValues = classValues.ToArray();79 this.thresholds = thresholds.ToArray();72 this.classValues = new double[] { 0.0 }; 73 this.thresholds = new double[] { double.NegativeInfinity }; 80 74 } 81 75 82 76 public override IDeepCloneable Clone(Cloner cloner) { 83 77 return new DiscriminantFunctionClassificationModel(this, cloner); 78 } 79 80 public void SetThresholdsAndClassValues(IEnumerable<double> thresholds, IEnumerable<double> classValues) { 81 var classValuesArr = classValues.ToArray(); 82 var thresholdsArr = thresholds.ToArray(); 83 if (thresholdsArr.Length != classValuesArr.Length) throw new ArgumentException(); 84 85 this.classValues = classValuesArr; 86 this.thresholds = thresholdsArr; 87 OnThresholdsChanged(EventArgs.Empty); 84 88 } 85 89 … … 96 100 else break; 97 101 } 98 yield return classValues.ElementAt(classIndex );102 yield return classValues.ElementAt(classIndex - 1); 99 103 } 100 104 }
Note: See TracChangeset
for help on using the changeset viewer.