/** * Adds the supplied input instance to the inputformat dataset for later processing. Use this * method rather than getInputFormat().add(instance). Or else. * * @param instance the <code>Instance</code> to buffer. */ protected void bufferInput(M5Instance instance) { if (instance != null) { copyStringValues(instance, m_InputFormat, m_InputStringAtts); instance.setDataset(m_InputFormat); m_InputFormat.add(instance); } }
/** * Filters an entire set of instances through a filter and returns the new set. * * @param data the data to be filtered * @param filter the filter to be used * @return the filtered set of data * @exception Exception if the filter can't be used successfully */ public static M5Instances useFilter(M5Instances data, NominalToBinaryFilter filter) throws Exception { /* System.err.println(filter.getClass().getName() + " in:" + data.numInstances()); */ for (int i = 0; i < data.numInstances(); i++) { filter.input(data.instance(i)); } filter.batchFinished(); M5Instances newData = filter.getOutputFormat(); M5Instance processed; while ((processed = filter.output()) != null) { newData.add(processed); } /* System.err.println(filter.getClass().getName() + " out:" + newData.numInstances()); */ return newData; }