List of usage examples for weka.core Instances attribute
publicAttribute attribute(String name)
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 w ww . j a v a2 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(instance.numAttributes() - 1) .equals(instance.attribute(instance.numAttributes() - 1).value(indexConclusion)))) count++; } return count; }
From source file:NaiveBayesPckge.NaiveBayesCode.java
/** * Digunakan untuk menghitung frekuensi tiap nilai atribut dan memanggil fungsi countLabel() * @param instance Instance yang digunakan *//*from w w w. ja va2 s .c om*/ public void setCountLabel(Instances instance) { // iterasi tiap atribut for (int i = 0; i < instance.numAttributes() - 1; 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(instance.numAttributes() - 1).numValues(); k++) { atribNom[i].setCountAtribut(j, k, countLabel(instance, i, j, k)); } } } }
From source file:NaiveBayesPckge.NaiveBayesCode.java
/** * Prosedur ini digunakan untuk menghitung Model Probabilitasnya * @param instance instance yang digunakan *//*from ww w . ja va2 s . c om*/ public void setModelProbability(Instances instance) { // iterasi tiap atribut for (int i = 0; i < instance.numAttributes() - 1; 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(instance.numAttributes() - 1).numValues(); k++) { atribNom[i].setAtribut(j, k, countProbability(instance, i, j, k)); } } } }
From source file:NaiveBayesPckge.NaiveBayesCode.java
/** * Menjalankan program utama untuk Naive Bayes * @param instance instance yang digunakan */// w w w. j a v a 2s . com 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(instance.numAttributes() - 1).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(instance.numAttributes() - 1).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.NaiveBayesMain.java
public static Instances useFilterNominalToNumeric(Instances instance) throws Exception { boolean isNumeric = false; Instances newInstance = null;/*from ww w.j a va2s . co m*/ // 0 = Numeric // 1 = Nominal for (int i = 0; i < instance.numAttributes(); i++) { if ((instance.attribute(i).type() == 0) || (instance.attribute(i).type() == 1)) { isNumeric = true; } } if (isNumeric) { System.out.println("> Filtering dataset using NumericToNominal\n"); NumericToNominal filter = new NumericToNominal(); try { filter.setInputFormat(instance); newInstance = Filter.useFilter(instance, filter); //System.out.println(newInstance); System.out.println("Data filtered"); } catch (Exception e) { System.out.println("Problem filtering instances\n"); } } return newInstance; }
From source file:NaiveBayesPckge.NaiveBayesMain.java
public static void addNewInstance(Instances instances) throws Exception { Scanner scan = new Scanner(System.in); ArrayList<Attribute> atts = new ArrayList<Attribute>(); ArrayList<String> classVal = new ArrayList<String>(); int nConclus = instances.attribute(instances.numAttributes() - 1).numValues(); int numAttribut = instances.numAttributes(); //buat nambah kesimpulan. Misal T dan F for (int i = 0; i < nConclus; i++) { classVal.add(instances.attribute(instances.numAttributes() - 1).value(i)); }//w w w .j av a2 s. co m //buat nambahin attribut for (int i = 0; i < numAttribut - 1; i++) { atts.add(new Attribute(instances.attribute(i).name())); } atts.add(new Attribute(instances.attribute(numAttribut - 1).name(), classVal)); double[] attValues = new double[numAttribut]; System.out.print("Masukkan nilai : "); for (int i = 0; i < numAttribut - 1; i++) { attValues[i] = scan.nextDouble(); } Discretize discretize = new Discretize(); String s = scan.nextLine(); Instance instance = new DenseInstance(1.0, attValues); instance.setDataset(instances); discretize.setInputFormat(instances); discretize.input(instance); int classify1 = (int) naive.classifyInstance(instance); System.out.print("Prediction Class : "); System.out.println(classVal.get(classify1)); }
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:naive_bayes.Naive_bayes.java
@Override public void buildClassifier(Instances newData) throws Exception { int countAttr = newData.numAttributes(); int distinctClassValue = newData.attribute(classidx).numValues(); /* Inisialisasi Model */ M = new ArrayList[countAttr][distinctClassValue]; for (int i = 0; i < countAttr; i++) { for (int j = 0; j < distinctClassValue; j++) { M[i][j] = new ArrayList<ListElement>(); }/* ww w. jav a2 s . c o m*/ } boolean add; ListElement le = new ListElement(); Attribute ab; for (int i = 0; i < countAttr; i++) { if (i != classidx) { for (int j = 0; j < distinctClassValue; j++) { for (int k = 0; k < newData.attribute(i).numValues(); k++) { ab = newData.attribute(i); String c = ab.value((int) newData.instance(149).value(i)); add = M[i][j].add(new ListElement()); } } } } /* Membuat array yang menghitung banyak nilai pada masing-masing kelas */ Attribute a; String c; arrayOfClass = new ListElement[newData.numClasses()]; for (int idx = 0; idx < newData.numClasses(); idx++) { arrayOfClass[idx] = new ListElement(); a = newData.classAttribute(); c = a.value(idx); arrayOfClass[idx].setDisAttrName(c); } for (int i = 0; i < newData.numInstances(); i++) { double z = newData.instance(i).classValue(); int zz = (int) z; arrayOfClass[zz].setCount(arrayOfClass[zz].getCount() + 1); } //Masukan frekuensi masing-masing atribut for (int i = 0; i < newData.numInstances(); i++) { for (int j = 0; j < newData.numAttributes(); j++) { if (j != classidx) { //bukan atribut kelas a = newData.attribute(classidx); c = a.value((int) newData.instance(i).value(classidx)); //Mengambil indeks kelas double z = newData.instance(i).classValue(); int zz = (int) z; le.setDisAttrName(c); //Mengambil indeks valueDistinct double x = newData.instance(i).value(j); int xx = (int) x; //Menambahkan frekuensi kemunculan nilai per kelas per atribut le.setCount(M[j][zz].get(xx).getCount() + 1); M[j][zz].set(xx, new ListElement(M[j][zz].get(xx).getDisAttrName(), M[j][zz].get(xx).getCount() + 1)); } } } /* Menghitung probabilitas masing-masing nilai distinct atribut per kelas */ for (int j = 0; j < newData.numAttributes(); j++) { if (j != classidx) { for (int zz = 0; zz < newData.numClasses(); zz++) { for (int xx = 0; xx < newData.attribute(j).numValues(); xx++) { M[j][zz].set(xx, new ListElement(M[j][zz].get(xx).getDisAttrName(), M[j][zz].get(xx).getCount() / arrayOfClass[zz].getCount())); } } } } }
From source file:net.paudan.evosvm.LibLINEAR.java
License:Open Source License
private boolean isOnlyNumeric(Instances insts) { for (int i = 0; i < insts.numAttributes(); i++) { if (i != insts.classIndex()) { if (!insts.attribute(i).isNumeric()) { return false; }//from w ww . j a v a2 s.c om } } return true; }