m_attrFilter.setAttributeIndicesArray(arrIdc); m_attrFilter.setInvertSelection(true);
  public double[] distributionForInstance(Instance instance) throws Exception {    int [] arrIdc = new int[m_BaseClassifiers.length+1];    arrIdc[m_BaseClassifiers.length]=m_MetaFormat.numAttributes()-1;    double [] classProbs = new double[m_BaseFormat.numClasses()];    Instance newInst;    double sum=0;    for (int i = 0; i<m_MetaClassifiers.length; i++) {      for (int j = 0; j<m_BaseClassifiers.length; j++)          arrIdc[j]=m_BaseFormat.numClasses()*j+i;      m_attrFilter.setAttributeIndicesArray(arrIdc);      m_makeIndicatorFilter.setValueIndex(i);      m_makeIndicatorFilter.input(metaInstance(instance));      m_makeIndicatorFilter.batchFinished();      newInst = m_makeIndicatorFilter.output();      m_attrFilter.setInputFormat(m_makeIndicatorFilter.getOutputFormat());      m_attrFilter.input(newInst);      m_attrFilter.batchFinished();      newInst = m_attrFilter.output();      classProbs[i]=m_MetaClassifiers[i].classifyInstance(newInst);      if (classProbs[i]>1) { classProbs[i]=1; }      if (classProbs[i]<0) { classProbs[i]=0; }      sum+= classProbs[i];    }    if (sum!=0) Utils.normalize(classProbs,sum);    return classProbs;  }