Example usage for weka.core Instances attribute

List of usage examples for weka.core Instances attribute

Introduction

In this page you can find the example usage for weka.core Instances attribute.

Prototype

publicAttribute attribute(String name) 

Source Link

Document

Returns an attribute given its name.

Usage

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;
}