Changeset 7549 for branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/WeightCalculators/ContinuousPointCertaintyWeightCalculator.cs
- Timestamp:
- 03/05/12 17:02:37 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/WeightCalculators/ContinuousPointCertaintyWeightCalculator.cs
r7531 r7549 49 49 } 50 50 51 protected override IEnumerable<double> DiscriminantCalculateWeights(I temCollection<IDiscriminantFunctionClassificationSolution> discriminantSolutions) {51 protected override IEnumerable<double> DiscriminantCalculateWeights(IEnumerable<IDiscriminantFunctionClassificationSolution> discriminantSolutions) { 52 52 List<double> weights = new List<double>(); 53 53 IClassificationProblemData problemData = discriminantSolutions.ElementAt(0).ProblemData; 54 IEnumerable<double> targetValues = GetValues(problemData.Dataset.GetDoubleValues(problemData.TargetVariable).ToList(), problemData.TrainingIndizes);54 IEnumerable<double> targetValues; 55 55 IEnumerator<double> trainingValues; 56 56 57 57 //only works for binary classification 58 58 if (!problemData.ClassValues.Count().Equals(2)) 59 return Enumerable.Repeat<double>(1, discriminantSolutions.Count );59 return Enumerable.Repeat<double>(1, discriminantSolutions.Count()); 60 60 61 61 double maxClass = problemData.ClassValues.Max(); … … 64 64 65 65 foreach (var solution in discriminantSolutions) { 66 problemData = solution.ProblemData; 67 targetValues = GetValues(problemData.Dataset.GetDoubleValues(problemData.TargetVariable).ToList(), problemData.TrainingIndizes); 68 trainingValues = targetValues.GetEnumerator(); 69 66 70 IEnumerator<double> estimatedTrainingVal = solution.EstimatedTrainingValues.GetEnumerator(); 67 71 IEnumerator<double> estimatedTrainingClassVal = solution.EstimatedTrainingClassValues.GetEnumerator(); 68 72 69 trainingValues = targetValues.GetEnumerator();70 73 double curWeight = 0.0; 71 74 while (estimatedTrainingVal.MoveNext() && estimatedTrainingClassVal.MoveNext() && trainingValues.MoveNext()) { 72 //if (estimatedTrainingClassVal.Current.Equals(trainingValues.Current)) {73 75 if (trainingValues.Current.Equals(maxClass)) { 74 76 if (estimatedTrainingVal.Current >= maxClass) … … 86 88 } 87 89 } 88 //}89 90 } 90 weights.Add(curWeight); 91 // normalize the weight (otherwise a model with a bigger training partition would probably be better) 92 weights.Add(curWeight / targetValues.Count()); 91 93 } 92 94 return weights;
Note: See TracChangeset
for help on using the changeset viewer.