List of usage examples for weka.core Instances get
@Override
publicInstance get(int index)
From source file:moa.tud.ke.patching.AdaptivePatchingAdwin.java
public double classifyInstance(weka.core.Instance inst) throws Exception { int region = -1; int defaultDecider = -1; int amountDeciders = -1; double label; weka.core.Instance origInst = inst;/*from w w w . jav a 2 s .c o m*/ try { if (this.regionDecider != null) { // Handling of optional usage of the base class as an additional attribute. if (this.useBaseClassAsAttribute.isSet()) { Instances tmp = new Instances(this.prototypeData); // deep copy of our empty prototypeData tmp.add(inst); tmp = addBaseClassToInstances(tmp); weka.core.Instance inst2 = tmp.get(0); inst = inst2; inst2 = null; } // Pre-classify instance and retrieve the used Decider double regClass = this.regionDecider.classifyInstance(inst); if (regClass == 0) { // only if its in a "wrong" region Boolean isMultiDecider = false; if (this.regionDecider.getAmountOfDeciders() > 1) { isMultiDecider = true; } Classifier patch; if (isMultiDecider) { region = this.regionDecider.getLastUsedDecider(); // System.out.println("using patch region decider: "+region); patch = (Classifier) regionPatches.elementAt(region); if (patch != null) { return patch.classifyInstance(inst); } } else { // case b: we only have a 0/1 information about if its in the error region or not. patch = (Classifier) regionPatches.elementAt(0); if (patch != null) { return patch.classifyInstance(inst); } } } else { // if its not in a "wrong" region, return the class from the base classifier if (this.useBaseClassAsAttribute.isSet()) { return inst.value(0); // this has maybe already been calculated into the first attribute. } } } } catch (Exception e) { System.err.println("AdaptivePatching : Error in classifyInstance while using regionDecider."); System.out.println("Region: " + region + " DefaultDecider:" + defaultDecider + " amountDeciders:" + amountDeciders + " regionPatches#:" + regionPatches.size()); e.printStackTrace(); System.exit(234545345); } return baseClassifier.classifyInstance(origInst); }
From source file:moa.tud.ke.patching.Patching.java
/** * Classifies an instance by checking if it lies in an error region and then * using the respective patch, or just using the base classifier otherwise. * * @param inst//from w ww .java 2 s . c om * @return * @throws Exception */ public double classifyInstance(weka.core.Instance inst) throws Exception { int region = -1; int defaultDecider = -1; int amountDeciders = -1; double label; weka.core.Instance origInst = inst; try { if (this.regionDecider != null) { // Handling of optional usage of the base class as an additional attribute. if (this.useBaseClassAsAttribute.isSet()) { Instances tmp = new Instances(this.prototypeData); // deep copy of our empty prototypeData tmp.add(inst); tmp = addBaseClassToInstances(tmp); weka.core.Instance inst2 = tmp.get(0); inst = inst2; inst2 = null; } // Pre-classify instance and retrieve the used Decider double regClass = this.regionDecider.classifyInstance(inst); if (regClass == 0) { // only if its in a "wrong" region Boolean isMultiDecider = false; if (this.regionDecider.getAmountOfDeciders() > 1) { isMultiDecider = true; } Classifier patch; if (isMultiDecider) { // a) if the classifier can disciminate different regions region = this.regionDecider.getLastUsedDecider(); patch = (Classifier) regionPatches.elementAt(region); if (patch != null) { return patch.classifyInstance(inst); } } else { // case b: we only have a 0/1 information about if its in the error region or not. patch = (Classifier) regionPatches.elementAt(0); if (patch != null) { return patch.classifyInstance(inst); } } } else { // if its not in a "wrong" region, return the class from the base classifier if (this.useBaseClassAsAttribute.isSet()) { // this has maybe already been calculated into the first attribute, so we dont need to // classify this instance again. return inst.value(0); } } } } catch (Exception e) { System.err.println("AdaptivePatching : Error in classifyInstance while using regionDecider."); System.out.println("Region: " + region + " DefaultDecider:" + defaultDecider + " amountDeciders:" + amountDeciders + " regionPatches#:" + regionPatches.size()); e.printStackTrace(); } return baseClassifier.classifyInstance(origInst); }
From source file:NaiveBayes.NaiveBayes.java
public static int[] getNumEachClass(Instances ins) { int[] countEachClass = new int[ins.numClasses()]; for (int i = 0; i < ins.numClasses(); i++) { int cnt = 0; for (int j = 0; j < ins.numInstances(); j++) { if (ins.attribute(ins.classIndex()).value(i) .equals(ins.get(j).toString(ins.classIndex()).replaceAll("\\s+", ""))) cnt++;/*from w ww.ja v a 2 s. c o m*/ } countEachClass[i] = cnt; } return countEachClass; }
From source file:NaiveBayes.Nilai.java
public Nilai(Instances inst, int i, int j, int classindex) throws Exception { Instances newData = new Instances(inst); numClass = NaiveBayes.getNumEachClass(newData); lower = 0;//from w w w.j a v a2 s. com upper = 0; kelas = new ArrayList<>(); //if(newData.instance(i).isMissing(j)) newData.instance(i).setValue(i, "b"); if (newData.attribute(i).isNumeric()) { Discretize f = new Discretize(); f.setInputFormat(newData); newData = Filter.useFilter(newData, f); name = newData.attribute(i).value(j); if (f.getCutPoints(i) != null) { if (j == 0) { lower = Double.NEGATIVE_INFINITY; upper = f.getCutPoints(i)[j]; } else { if (j != newData.attribute(0).numValues() - 1) { lower = f.getCutPoints(i)[j - 1]; upper = f.getCutPoints(i)[j]; } else { lower = f.getCutPoints(i)[j - 1]; upper = Double.POSITIVE_INFINITY; } } } else { lower = Double.NEGATIVE_INFINITY; upper = Double.POSITIVE_INFINITY; } for (int k = 0; k < inst.attribute(classindex).numValues(); k++) { //buat nama kelas double cnt = 1; int countClass = 0; for (int l = 0; l < inst.numInstances(); l++) { //jumlah seluruh instances double val = inst.get(l).value(i); if (countClass <= numClass[k]) { if (inst.attribute(classindex).value(k).equalsIgnoreCase( inst.get(l).toString(classindex).replaceAll("'", ""))) {/*nama kelasnya*/ if (val >= lower && val < upper) {//jika ada nilai yang sama pada atribut //dan kelas yang sama dan nilai dari atribut lebih besar sama dengan lower cnt += 1; } countClass++; } } else break; } kelas.add(new Kelas(newData.attribute(classindex).value(k), cnt)); } } else { //System.out.println(newData.attribute(i).value(j).replaceAll("\\s+", "")); name = newData.attribute(i).value(j).replaceAll("\\s", ""); //System.out.println(name); //System.out.println(name); for (int k = 0; k < inst.attribute(classindex).numValues(); k++) { //buat nama kelas double cnt = 1; int countClass = 0; for (int l = 0; l < inst.numInstances(); l++) { //jumlah seluruh instances if (countClass <= numClass[k]) { //System.out.println("with whitespace "+inst.attribute(i).value(j)+"without "+inst.attribute(i).value(j).replaceAll("\\s", "")+"p"); // System.out.println(inst.get(l).toString(classindex)); //System.out.println(inst.attribute(classindex).value(k)); if (inst.attribute(classindex).value(k).replaceAll("\\s", "") .equalsIgnoreCase(inst.get(l).toString(classindex).replaceAll("\\s", ""))//nama kelas && inst.attribute(i).value(j).replaceAll("\\s", "").//cek nama atribut equalsIgnoreCase(inst.get(l).toString(i).replaceAll("\\s", ""))) { //jika ada nilai yang sama pada atribut //dan kelas yang sama dan nilai dari atribut lebih besar sama dengan lower cnt += 1; countClass++; } } else break; } kelas.add(new Kelas(newData.attribute(classindex).value(k).replaceAll("\\s+", ""), cnt)); } } }
From source file:NaiveBayesPckge.mushClass.java
/** * Untuk membuat tabel banyaknya kesimpulan tiap label. Misal T ada berapa, F ada berapa. * @param instance instance yang digunakan * @param nConclusion banyaknya label kesimpulan *///from w w w . j a v a 2s. c om public void countConclusionProcedure(Instances instance, int nConclusion) { int count; for (int index = 0; index < nConclusion; index++) { count = 0; for (int i = 0; i < instance.numInstances(); i++) { if (instance.get(i).stringValue(0) == instance.attribute(0).value(index)) count++; } countConclusion[index] = count; } System.out.println("3"); }
From source file:NaiveBayesPckge.mushClass.java
/** * Digunakan untuk menghitung frekuensi tiap nilai atribut * @param instance instance yang diberikan * @param indexAtrib indeks dari atribut (misal atr1, atr2, atr2) * @param indexValue indeks dari value / label dari atribut tertentu * @param indexConclusion indeks dari label kesimpulan * @return //from w w w . j ava2s . c om */ public int countLabel(Instances instance, int indexAtrib, int indexValue, int indexConclusion) { int count = 0; for (int i = 0; i < instance.numInstances(); i++) { if ((instance.get(i).stringValue(indexAtrib) == instance.attribute(indexAtrib).value(indexValue))//) && (instance.get(i).stringValue(0).equals(instance.attribute(0).value(indexConclusion)))) count++; } return count; }
From source file:NaiveBayesPckge.NaiveBayesCode.java
/** * Untuk membuat tabel banyaknya kesimpulan tiap label. Misal T ada berapa, F ada berapa. * @param instance instance yang digunakan * @param nConclusion banyaknya label kesimpulan *//*from ww w .j a v a 2 s.c om*/ public void countConclusionProcedure(Instances instance, int nConclusion) { int count; for (int index = 0; index < nConclusion; index++) { count = 0; for (int i = 0; i < instance.numInstances(); i++) { if (instance.get(i).stringValue(instance.numAttributes() - 1) == instance .attribute(instance.numAttributes() - 1).value(index)) count++; } countConclusion[index] = count; } }
From source file:NaiveBayesPckge.NaiveBayesCode.java
/** * Digunakan untuk menghitung frekuensi tiap nilai atribut * @param instance instance yang diberikan * @param indexAtrib indeks dari atribut (misal atr1, atr2, atr2) * @param indexValue indeks dari value / label dari atribut tertentu * @param indexConclusion indeks dari label kesimpulan * @return //from ww w . j a v a2s.c om */ public int countLabel(Instances instance, int indexAtrib, int indexValue, int indexConclusion) { int count = 0; for (int i = 0; i < instance.numInstances(); i++) { if ((instance.get(i).stringValue(indexAtrib) == instance.attribute(indexAtrib).value(indexValue))//) && (instance.get(i).stringValue(instance.numAttributes() - 1) .equals(instance.attribute(instance.numAttributes() - 1).value(indexConclusion)))) count++; } return count; }
From source file:NaiveBayesPckge.NaiveBayesMain.java
public static void printCoba(Instances instance) { System.out.println(""); System.out.println("1. first instance : " + instance.firstInstance()); System.out.println("2. banyaknya atribut :" + instance.numAttributes()); System.out.println("3. " + instance.attribute(0).numValues()); System.out.println("4. " + instance.attribute(0).weight()); System.out.println("5. " + instance.attribute(instance.numAttributes() - 1).numValues()); System.out.println("6. " + instance.get(0)); System.out.println("7. " + instance.get(0).stringValue(4)); System.out.println("8. " + instance.numInstances()); System.out.println("9. " + instance.attribute(instance.numAttributes() - 1).numValues()); System.out.println("10. " + instance.get(1).stringValue(instance.numAttributes() - 1)); System.out.println("11. " + instance.attribute(instance.numAttributes() - 1).value(0)); System.out.println("12. " + instance.attribute(instance.numAttributes() - 1).name()); System.out.println("13. " + instance.numClasses()); System.out.println("14. Banyaknya kelas yang diuji : " + instance.classIndex()); // System.out.println("15. " + (String.valueOf(instance.attribute(0).value(34)).equals(String.valueOf(4.3)))); // System.out.println("16. " + instance); }
From source file:nl.uva.sne.commons.ClusterUtils.java
public static Map<String, String> classify(String testDataPath, Classifier classifier) throws Exception { Instances testData = createInstancesWithClasses(testDataPath); testData.setClassIndex(testData.numAttributes() - 1); Map<String, String> classes = new HashMap(); for (int j = 0; j < testData.numInstances(); j++) { // System.err.println(m); Instance inst = testData.get(j); String id = inst.toString().split(",")[0]; // System.err.println(inst); // System.out.print("ID: " + UNdata.instance(j).value(0) + " "); int clsLabel = (int) classifier.classifyInstance(inst); // String theClass = testData.classAttribute().value(clsLabel); // System.err.println(id + " " + clsLabel); classes.put(testDataPath + File.separator + id, String.valueOf(clsLabel)); }//ww w.j a v a 2s .c o m return classes; }