runInstances.randomize(new Random(run));
if (m_randomize) { runInstances.randomize(new Random(run)); }
  public void doRun(int run) throws Exception {    if (getRawOutput()) {      if (m_ZipDest == null) {	m_ZipDest = new OutputZipper(m_OutputFile);      }    }    if (m_Instances == null) {      throw new Exception("No Instances set");    }    // Add in some fields to the key like run number, dataset name    Object [] seKey = m_SplitEvaluator.getKey();    Object [] key = new Object [seKey.length + 2];    key[0] = Utils.backQuoteChars(m_Instances.relationName());    key[1] = "" + run;    System.arraycopy(seKey, 0, key, 2, seKey.length);    if (m_ResultListener.isResultRequired(this, key)) {      // Randomize on a copy of the original dataset      Instances runInstances = new Instances(m_Instances);      runInstances.randomize(new Random(run));      int trainSize = runInstances.numInstances() * m_TrainPercent / 100;      int testSize = runInstances.numInstances() - trainSize;      Instances train = new Instances(runInstances, 0, trainSize);      Instances test = new Instances(runInstances, trainSize, testSize);      try {	Object [] seResults = m_SplitEvaluator.getResult(train, test);	Object [] results = new Object [seResults.length + 1];	results[0] = getTimestamp();	System.arraycopy(seResults, 0, results, 1,			 seResults.length);	if (m_debugOutput) {	  String resultName = 	    (""+run+"."+	     Utils.backQuoteChars(runInstances.relationName())	     +"."	     +m_SplitEvaluator.toString()).replace(' ','_');	  m_ZipDest.zipit(m_SplitEvaluator.getRawResultOutput(), resultName);	}	m_ResultListener.acceptResult(this, key, results);      } catch (Exception ex) {	// Save the train and test datasets for debugging purposes?	throw ex;      }    }  }