Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/05/12 17:02:37 (12 years ago)
Author:
sforsten
Message:

#1776:

  • models can be selected with a check box
  • all strategies are now finished
  • major changes have been made to provide the same behaviour when getting the estimated training or test values of an ensemble
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/WeightCalculators/ContinuousPointCertaintyWeightCalculator.cs

    r7531 r7549  
    4949    }
    5050
    51     protected override IEnumerable<double> DiscriminantCalculateWeights(ItemCollection<IDiscriminantFunctionClassificationSolution> discriminantSolutions) {
     51    protected override IEnumerable<double> DiscriminantCalculateWeights(IEnumerable<IDiscriminantFunctionClassificationSolution> discriminantSolutions) {
    5252      List<double> weights = new List<double>();
    5353      IClassificationProblemData problemData = discriminantSolutions.ElementAt(0).ProblemData;
    54       IEnumerable<double> targetValues = GetValues(problemData.Dataset.GetDoubleValues(problemData.TargetVariable).ToList(), problemData.TrainingIndizes);
     54      IEnumerable<double> targetValues;
    5555      IEnumerator<double> trainingValues;
    5656
    5757      //only works for binary classification
    5858      if (!problemData.ClassValues.Count().Equals(2))
    59         return Enumerable.Repeat<double>(1, discriminantSolutions.Count);
     59        return Enumerable.Repeat<double>(1, discriminantSolutions.Count());
    6060
    6161      double maxClass = problemData.ClassValues.Max();
     
    6464
    6565      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
    6670        IEnumerator<double> estimatedTrainingVal = solution.EstimatedTrainingValues.GetEnumerator();
    6771        IEnumerator<double> estimatedTrainingClassVal = solution.EstimatedTrainingClassValues.GetEnumerator();
    6872
    69         trainingValues = targetValues.GetEnumerator();
    7073        double curWeight = 0.0;
    7174        while (estimatedTrainingVal.MoveNext() && estimatedTrainingClassVal.MoveNext() && trainingValues.MoveNext()) {
    72           //if (estimatedTrainingClassVal.Current.Equals(trainingValues.Current)) {
    7375          if (trainingValues.Current.Equals(maxClass)) {
    7476            if (estimatedTrainingVal.Current >= maxClass)
     
    8688            }
    8789          }
    88           //}
    8990        }
    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());
    9193      }
    9294      return weights;
Note: See TracChangeset for help on using the changeset viewer.