package tr.gov.ulakbim.jDenetX.core; import tr.gov.ulakbim.jDenetX.AbstractMOAObject; import weka.core.Instance; import java.util.ArrayList; import java.util.Iterator; import java.util.TreeSet; public class VotedInstancePool extends AbstractMOAObject implements Iterable<VotedInstance> { /** * Serial Version UID */ private static final long serialVersionUID = -8436429750022781583L; private static final int MAX_NO_OF_CLASSES = 100; //TreeSet is used as a RB tree private static TreeSet<VotedInstance> InstConfPairs = new TreeSet<VotedInstance>(); private static int NoOfClasses = 0; ArrayList<Integer> ClassesMap = new ArrayList<Integer>(); public VotedInstancePool() { for (int i = 0; i < MAX_NO_OF_CLASSES; i++) { ClassesMap.add(i, 0); } } public void addVotedInstance(Instance inst, double conf, double activeLearningRatio) { VotedInstance instConf = new VotedInstance(); instConf.setActiveLearningRatio(activeLearningRatio); instConf.setInstance(inst); instConf.setConfidence(conf); //This is redundant InstConfPairs.add(instConf); if (ClassesMap.get((int) inst.classValue()) != 1) { NoOfClasses++; } ClassesMap.set((int) inst.classValue(), 1); } public void addVotedInstancePool(VotedInstance vInst) { InstConfPairs.add(vInst); } public Iterator<VotedInstance> iterator() { return InstConfPairs.iterator(); } public int getSize() { return InstConfPairs.size(); } public int getNoOfClasses() { return NoOfClasses; } public void setNoOfClasses(int noOfClasses) { NoOfClasses = noOfClasses; } public void getDescription(StringBuilder sb, int indent) { } }