Changeset 13941 for trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleModel.cs
- Timestamp:
- 06/28/16 13:33:17 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleModel.cs
r13921 r13941 32 32 [StorableClass] 33 33 [Item("ClassificationEnsembleModel", "A classification model that contains an ensemble of multiple classification models")] 34 public class ClassificationEnsembleModel : NamedItem, IClassificationEnsembleModel {35 public IEnumerable<string> VariablesUsedForPrediction {34 public class ClassificationEnsembleModel : ClassificationModel, IClassificationEnsembleModel { 35 public override IEnumerable<string> VariablesUsedForPrediction { 36 36 get { return models.SelectMany(x => x.VariablesUsedForPrediction).Distinct().OrderBy(x => x); } 37 }38 39 public string TargetVariable {40 get { return models.First().TargetVariable; }41 37 } 42 38 … … 56 52 public ClassificationEnsembleModel() : this(Enumerable.Empty<IClassificationModel>()) { } 57 53 public ClassificationEnsembleModel(IEnumerable<IClassificationModel> models) 58 : base( ) {54 : base(string.Empty) { 59 55 this.name = ItemName; 60 56 this.description = ItemDescription; 61 57 this.models = new List<IClassificationModel>(models); 58 59 if (this.models.Any()) this.TargetVariable = this.models.First().TargetVariable; 62 60 } 63 61 … … 66 64 } 67 65 68 #region IClassificationEnsembleModel Members69 66 public void Add(IClassificationModel model) { 67 if (string.IsNullOrEmpty(TargetVariable)) TargetVariable = model.TargetVariable; 70 68 models.Add(model); 71 69 } 72 70 public void Remove(IClassificationModel model) { 73 71 models.Remove(model); 72 if (!models.Any()) TargetVariable = string.Empty; 74 73 } 75 74 … … 85 84 } 86 85 87 #endregion88 86 89 #region IClassificationModel Members 90 91 public IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) { 87 public override IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) { 92 88 foreach (var estimatedValuesVector in GetEstimatedClassValueVectors(dataset, rows)) { 93 89 // return the class which is most often occuring … … 101 97 } 102 98 103 IClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) {99 public override IClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) { 104 100 return new ClassificationEnsembleSolution(models, new ClassificationEnsembleProblemData(problemData)); 105 101 } 106 #endregion 102 103 107 104 } 108 105 }
Note: See TracChangeset
for help on using the changeset viewer.