Ejemplo n.º 1
0
  public void updateWeights(TrainingSet tSet, double[] w, int[] m, Classifier baseClassifier) {

    int n = w.length;

    // update misclassification counts with results from latest classifier
    for (int i = 0; i < n; i++) {
      Instance instance = tSet.getInstance(i);
      Concept actualConcept = baseClassifier.classify(instance);
      Concept expectedConcept = instance.getConcept();
      if (actualConcept == null || !(actualConcept.getName().equals(expectedConcept.getName()))) {
        m[i]++;
      }
    }

    // update weights
    double sum = 0.0;
    for (int i = 0; i < n; i++) {
      sum += (1.0 + Math.pow(m[i], 4));
    }

    for (int i = 0; i < n; i++) {
      w[i] = (1.0 + Math.pow(m[i], 4)) / sum;
    }
  }