m_topOfTree.setMinNumInstances(m_minNumInstances);
  public void buildClassifier(Instances data) throws Exception {    m_instances = null;    m_topOfTree = null;    m_covered = null;    m_notCovered = null;    m_ruleModel = null;    m_splitAtts = null;    m_splitVals = null;    m_relOps = null;    m_internalNodes = null;    m_instances = data;    m_classIndex = m_instances.classIndex();    m_numAttributes = m_instances.numAttributes();    m_numInstances = m_instances.numInstances();    // first calculate global deviation of class attribute    m_globalStdDev = Rule.stdDev(m_classIndex, m_instances);    m_globalAbsDev = Rule.absDev(m_classIndex, m_instances);    m_topOfTree = new RuleNode(m_globalStdDev, m_globalAbsDev, null);    m_topOfTree.setSmoothing(m_smoothPredictions);    m_topOfTree.setSaveInstances(m_saveInstances);    m_topOfTree.setRegressionTree(m_regressionTree);    m_topOfTree.buildClassifier(m_instances);    m_topOfTree.setMinNumInstances(m_minNumInstances);    if (!m_useUnpruned) {      m_topOfTree.prune();    } else {      m_topOfTree.installLinearModels();    }    //m_topOfTree.printAllModels();    m_topOfTree.numLeaves(0);    if (!m_useTree) {           makeRule();      // save space      //      m_topOfTree = null;    }    // save space    m_instances = new Instances(m_instances, 0);  } 