List of usage examples for weka.core Instances attribute
publicAttribute attribute(String name)
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 ww w. j a v a 2s. c om 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:naivebayes.TucilWeka.java
public static Instances readDataSet(String filepath) { //Membaca dataset Instances data = null; try {//w w w . j ava 2 s . c om data = DataSource.read(filepath); } catch (Exception ex) { Logger.getLogger(TucilWeka.class.getName()).log(Level.SEVERE, null, ex); } for (int i = 0; i < data.numAttributes(); i++) { System.out.println(i + ". " + data.attribute(i)); } Scanner scan = new Scanner(System.in); System.out.print("Class Index : "); int temp = scan.nextInt(); data.setClassIndex(temp); if (temp == 26) { // data.deleteAttributeAt(27); } else //jika 27 { //data.deleteAttributeAt(26); } for (int i = 0; i < data.numAttributes(); i++) { System.out.println(i + ". " + data.attribute(i)); } System.out.println("Index kelasnya: " + data.classIndex()); // data.setClassIndex(data.numAttributes()-1); Instances retval = filterDiscretize(data); return retval; }
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 */// w w 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(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 ww w . j a v a 2 s .c o m*/ */ 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.mushClass.java
/** * Digunakan untuk menghitung frekuensi tiap nilai atribut dan memanggil fungsi countLabel() * @param instance Instance yang digunakan *///from w w w. ja va2 s . co m public void setCountLabel(Instances instance) { // iterasi tiap atribut for (int i = 0; i < instance.numAttributes(); i++) { // issue : why dikurangi satu || Solved. Yes thats right !! // iterasi tiap label dalam atribut for (int j = 0; j < instance.attribute(i).numValues(); j++) { // iterasi tiap kesimpulan for (int k = 0; k < instance.attribute(0).numValues(); k++) { atribNom[i].setCountAtribut(j, k, countLabel(instance, i, j, k)); } } } }
From source file:NaiveBayesPckge.mushClass.java
/** * Digunakan untuk mencetak frekuensi tiap nilai atribut sesuai dengan indexConclusion * @param instance instance yang digunakan * @param IndexAtrbt indeks dari atribut yang akan dicetak * @param indexConclusion indeks dari label kesimpulan yang akan dicetak *//* ww w. j av a2s .c o m*/ public void printFrequencyEachValueOfAtributByIndex(Instances instance) { System.out.println("\n###\nPrint frequency Each value of attribut :\n"); for (int i = 0; i < instance.numAttributes(); i++) { System.out.println("(" + (i + 1) + "). Attribut : " + instance.attribute(i).name()); for (int j = 0; j < instance.attribute(i).numValues(); j++) { System.out.print((j + 1) + ". " + instance.attribute(i).value(j) + " ="); for (int k = 0; k < instance.attribute(instance.numAttributes() - 1).numValues(); k++) { if (i == instance.numAttributes() - 1) System.out.print(""); else System.out.print("\t\t" + atribNom[i].getCountAtribut(j, k)); } if (i == instance.numAttributes() - 1) System.out.print(" " + countConclusion[j]); System.out.println(""); } System.out.println(""); } }
From source file:NaiveBayesPckge.mushClass.java
/** * Prosedur ini digunakan untuk menghitung Model Probabilitasnya * @param instance instance yang digunakan *//*from w ww . j a va 2 s .c o m*/ public void setModelProbability(Instances instance) { // iterasi tiap atribut for (int i = 0; i < instance.numAttributes(); i++) { // iterasi tiap label dalam atribut for (int j = 0; j < instance.attribute(i).numValues(); j++) { // iterasi tiap kesimpulan for (int k = 0; k < instance.attribute(0).numValues(); k++) { atribNom[i].setAtribut(j, k, countProbability(instance, i, j, k)); } } } }
From source file:NaiveBayesPckge.mushClass.java
public void printModelProbability(Instances instance) { DecimalFormat df = new DecimalFormat("#.##"); int nConclus = instance.attribute(instance.numAttributes() - 1).numValues(); System.out.println("\n###\nPrint Probability Model"); System.out.println("This value was formatted with 2 decimal places"); System.out.println(""); System.out.print("\t\t"); for (int k = 0; k < nConclus; k++) { System.out.print("\t\t" + instance.attribute(instance.numAttributes() - 1).value(k)); }/*from ww w . jav a 2s . c om*/ System.out.println(""); // iterasi tiap atribut for (int i = 0; i < instance.numAttributes() - 1; i++) { System.out.println((i + 1) + ". " + instance.attribute(i).name()); // iterasi tiap label dalam atribut for (int j = 0; j < instance.attribute(i).numValues(); j++) { if ((j + 1) < 10) System.out.print("00" + (j + 1) + ". " + instance.attribute(i).value(j)); else if ((j + 1) >= 10 && j < 100) System.out.print("0" + (j + 1) + ". " + instance.attribute(i).value(j)); else System.out.print((j + 1) + ". " + instance.attribute(i).value(j)); // iterasi tiap kesimpulan for (int k = 0; k < instance.attribute(instance.numAttributes() - 1).numValues(); k++) { double aa = (double) atribNom[i].getAttribObjectType(j, k); System.out.printf("\t\t" + df.format(aa)); } System.out.println(""); } System.out.println(""); } }
From source file:NaiveBayesPckge.mushClass.java
/** * Menjalankan program utama untuk Naive Bayes * @param instance instance yang digunakan *///from w w w.j a v a 2 s . c o m public void run(Instances instance) { // Inisiasi awal banyaknya atribut dan data yang di assign // misal ada T dan F,, berati nConclusion=2 int nConclusion = instance.attribute(0).numValues(); // banyaknya hasil konklusi instanceCopy = instance; for (int i = 0; i < instance.numAttributes(); i++) { atribNom[i] = new AttributeNominal(instance.attribute(i).numValues(), nConclusion); } countConclusion = new int[nConclusion]; countConclusionProcedure(instance, nConclusion); // hitung jumlah data tiap label di atribut setCountLabel(instance); // melakukan setting atau mengisi model probabilitas setModelProbability(instance); //banyaknya instance int nInstance = instance.numInstances(); //banyaknya jenis kesimpulan int nProbabConclusion = instance.attribute(0).numValues(); //array untuk menyimpan nilai probabilitas dari konklusi. //misal T probabilitasnya berapa, F probabilitasnya berapa. probabConclusion = new float[nProbabConclusion]; for (int i = 0; i < nProbabConclusion; i++) { probabConclusion[i] = (float) countConclusion[i] / (float) nInstance; } // printModelProbability(instance); // printFrequencyEachValueOfAtributByIndex(instance); System.out.println(""); }
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 */// w w w. j a v a 2s. c o m 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; } }