System.err.println("sum of residuals squared : "+sum);
if (m_debug) { System.err.println("Sum of squared residuals : "+sum); }
  public void buildClassifier(Instances data) throws Exception {     m_additiveModels = new FastVector();    if (m_Classifier == null) {      throw new Exception("No base classifiers have been set!");    }    if (data.classAttribute().isNominal()) {      throw new Exception("Class must be numeric!");    }    Instances newData = new Instances(data);    newData.deleteWithMissingClass();    m_classIndex = newData.classIndex();    double sum = 0;    double temp_sum = 0;    // Add the model for the mean first    ZeroR zr = new ZeroR();    zr.buildClassifier(newData);    m_additiveModels.addElement(zr);    newData = residualReplace(newData, zr);    sum = newData.attributeStats(m_classIndex).numericStats.sumSq;    System.err.println("New sum of residuals squared : "+sum);    do {      temp_sum = sum;      Classifier nextC = Classifier.makeCopies(m_Classifier, 1)[0];      nextC.buildClassifier(newData);      m_additiveModels.addElement(nextC);      newData = residualReplace(newData, nextC);      sum = newData.attributeStats(m_classIndex).numericStats.sumSq;      System.err.println("sum of residuals squared : "+sum);    } while ((temp_sum - 		   (sum = newData.attributeStats(m_classIndex).		    numericStats.sumSq)) > Utils.SMALL);    // remove last classifier    m_additiveModels.removeElementAt(m_additiveModels.size()-1);  }