Example usage for weka.core Instance classIndex

List of usage examples for weka.core Instance classIndex

Introduction

In this page you can find the example usage for weka.core Instance classIndex.

Prototype

public int classIndex();

Source Link

Document

Returns the class attribute's index.

Usage

From source file:moa.streams.filters.AddNoiseFilter.java

License:Open Source License

@Override
public Instance nextInstance() {
    Instance inst = (Instance) this.inputStream.nextInstance().copy();
    for (int i = 0; i < inst.numAttributes(); i++) {
        double noiseFrac = i == inst.classIndex() ? this.classNoiseFractionOption.getValue()
                : this.attNoiseFractionOption.getValue();
        if (inst.attribute(i).isNominal()) {
            DoubleVector obs = (DoubleVector) this.attValObservers.get(i);
            if (obs == null) {
                obs = new DoubleVector();
                this.attValObservers.set(i, obs);
            }//  w  w  w . j  a  va2  s . co  m
            int originalVal = (int) inst.value(i);
            if (!inst.isMissing(i)) {
                obs.addToValue(originalVal, inst.weight());
            }
            if ((this.random.nextDouble() < noiseFrac) && (obs.numNonZeroEntries() > 1)) {
                do {
                    inst.setValue(i, this.random.nextInt(obs.numValues()));
                } while (((int) inst.value(i) == originalVal) || (obs.getValue((int) inst.value(i)) == 0.0));
            }
        } else {
            GaussianEstimator obs = (GaussianEstimator) this.attValObservers.get(i);
            if (obs == null) {
                obs = new GaussianEstimator();
                this.attValObservers.set(i, obs);
            }
            obs.addObservation(inst.value(i), inst.weight());
            inst.setValue(i, inst.value(i) + this.random.nextGaussian() * obs.getStdDev() * noiseFrac);
        }
    }
    return inst;
}

From source file:NaiveBayes.NaiveBayes.java

@Override
public double classifyInstance(Instance last) {
    double prob[] = new double[last.classAttribute().numValues()];
    for (int classIndex = 0; classIndex < last.attribute(last.classIndex()).numValues(); classIndex++) {//classifikasi
        double temp = 1;
        int i = 0;

        for (Atribut attr : getList()) {
            if (i == last.classIndex())
                i++;//from w  ww.j  av a  2 s .co  m
            //System.out.println(attr.getName()+"="+last.attribute(i).name());
            temp *= attr.getFrekuensiNilai(last.attribute(last.classIndex()).value(classIndex),
                    last.toString(i), last.value(i), last.attribute(i).isNumeric()) / numEachClass[classIndex];
            i++;
        }
        double res;
        res = numEachClass[classIndex] / last.numAttributes() * temp;
        prob[classIndex] = res;
    }
    return maxIndex(prob);
}

From source file:NaiveBayesPckge.mushClass.java

@Override
public double classifyInstance(Instance instance) throws java.lang.Exception {
    double classify = 0;
    // banyaknya kesimpulan. Misal T dan F berati ada 2
    int numClasses = instance.numClasses();
    double[] out = new double[numClasses];
    //banyaknya kelas yang diuji
    int class_index = instance.classIndex();
    //banyaknya atribut
    int num_attributes = instance.numAttributes();
    double inputs[] = new double[num_attributes];

    for (int i = 0; i < numClasses; i++) {
        out[i] = probabConclusion[i];//from w  ww  .  jav  a  2s .co m
        for (int j = 0; j < num_attributes - 1; j++) {
            int indexLabel = searchIndexLabel(j, instance.stringValue(j));
            out[i] *= (double) atribNom[j].getAttribObjectType(indexLabel, i);
        }
    }

    classify = getIndexBiggestProbability(out);

    return classify;
}

From source file:NaiveBayesPckge.mushClass.java

@Override
public double[] distributionForInstance(Instance instance) throws Exception {

    // banyaknya kesimpulan. Misal T dan F berati ada 2
    int numClasses = instance.numClasses();

    double[] out = new double[numClasses];
    //banyaknya kelas yang diuji
    int class_index = instance.classIndex();
    //banyaknya atribut
    int num_attributes = instance.numAttributes();
    double inputs[] = new double[num_attributes];

    for (int i = 0; i < numClasses; i++) {

        out[i] = probabConclusion[i];/*from   w w w.  j a va  2 s  . c  o  m*/

        //            System.out.print("\n" + maxIterasi +". out["+i+"] = ");
        for (int j = 1; j < num_attributes; j++) {
            int indexLabel = searchIndexLabel(j, instance.stringValue(j));

            out[i] *= (double) atribNom[j].getAttribObjectType(indexLabel, i);

            //                System.out.print(atribNom[j].getAttribObjectType(indexLabel, i) + "*");
        }

        //            System.out.println("\nout["+i+"] = "+out[i]);
        //            System.out.println(instance.toString());
    }

    //        maxIterasi++;
    return out;
}

From source file:NaiveBayesPckge.NaiveBayesCode.java

@Override
public double[] distributionForInstance(Instance instance) throws Exception {

    // banyaknya kesimpulan. Misal T dan F berati ada 2
    int numClasses = instance.numClasses();
    double[] out = new double[numClasses];
    //banyaknya kelas yang diuji
    int class_index = instance.classIndex();
    //banyaknya atribut
    int num_attributes = instance.numAttributes();
    double inputs[] = new double[num_attributes];

    for (int i = 0; i < numClasses; i++) {

        out[i] = probabConclusion[i];/* w ww  . jav a  2  s .c om*/
        //            System.out.print("\n" + maxIterasi +". out["+i+"] = ");
        for (int j = 0; j < num_attributes - 1; j++) {
            int indexLabel = searchIndexLabel(j, instance.stringValue(j));
            out[i] *= (double) atribNom[j].getAttribObjectType(indexLabel, i);
            //                System.out.print(atribNom[j].getAttribObjectType(indexLabel, i) + "*");
        }
        //            System.out.println("\nout["+i+"] = "+out[i]);
        //            System.out.println(instance.toString());
    }
    //        maxIterasi++;
    return out;
}

From source file:net.paudan.evosvm.LibLINEAR.java

License:Open Source License

/**
* returns an instance into a sparse liblinear array
*
* @param instance the instance to work on
* @return the liblinear array//from   ww  w .  j  av a  2s .co m
* @throws Exception if setup of array fails
*/
protected FeatureNode[] instanceToArray(Instance instance) throws Exception {
    // determine number of non-zero attributes
    int count = 0;

    for (int i = 0; i < instance.numValues(); i++) {
        if (instance.index(i) == instance.classIndex())
            continue;
        if (instance.valueSparse(i) != 0)
            count++;
    }

    if (m_Bias >= 0) {
        count++;
    }

    // fill array
    FeatureNode[] nodes = new FeatureNode[count];
    int index = 0;
    for (int i = 0; i < instance.numValues(); i++) {

        int idx = instance.index(i);
        double val = instance.valueSparse(i);

        if (idx == instance.classIndex())
            continue;
        if (val == 0)
            continue;

        nodes[index] = new FeatureNode(idx + 1, val);
        index++;
    }

    // add bias term
    if (m_Bias >= 0) {
        nodes[index] = new FeatureNode(instance.numAttributes() + 1, m_Bias);
    }

    return nodes;
}

From source file:net.sf.bddbddb.OrderClassifier.java

License:LGPL

public double importance(weka.core.Attribute attribute, String attrValue) {//, String classValue){

    int count = 0;
    int goodCount = 0, badCount = 0;
    List newInstances = new LinkedList();

    for (Iterator it = orders.iterator(); it.hasNext();) {
        Instance instance = (Instance) it.next();
        if (//!instance.stringValue(instance.classIndex()).equals(classValue) ||
        !instance.stringValue(attribute).equals(attrValue))
            continue;

        if (goodClusters.contains(instance.stringValue(instance.classIndex())))
            ++goodCount;/*from   w ww.ja v  a 2  s.  c  om*/
        else
            ++badCount;

        Instance newInstance = new Instance(instance);
        newInstance.setDataset(instance.dataset());
        newInstances.add(newInstance);
    }
    goodCount *= attrOptions.size() - 1;
    badCount *= attrOptions.size() - 1;
    for (Iterator it = newInstances.iterator(); it.hasNext();) {
        Instance instance = (Instance) it.next();
        /*      if(//!instance.stringValue(instance.classIndex()).equals(classValue) || 
         !instance.stringValue(attribute).equals(attrValue)) continue;
         */

        String classValue = instance.stringValue(instance.classIndex());
        FastVector newOptions = new FastVector();
        newOptions.appendElements(attrOptions);
        newOptions.removeElementAt(newOptions.indexOf(instance.stringValue(attribute)));
        //int index = Math.abs(LearnedOrder.randomNumGen.nextInt()) % newOptions.size();
        int index = 0;
        while (index < newOptions.size()) {
            instance.setValue(attribute, attrOptions.indexOf(newOptions.elementAt(index)));
            String value = classify(instance);
            if (goodClusters.contains(classValue)) {
                if (goodClusters.contains(value))
                    --goodCount;
            } else if (!goodClusters.contains(classValue)) {
                if (!goodClusters.contains(value))
                    --badCount;
            }
            ++index;
        }
        //if(value.equals(classValue)) --count;
    }

    count = goodCount - badCount;
    count /= attrOptions.size() - 1;

    double importance = ((double) count) / newInstances.size();
    if (Double.isNaN(importance))
        return 0;
    return importance;
}

From source file:net.sf.bddbddb.OrderClassifier.java

License:LGPL

public double vote(weka.core.Attribute attribute, String attrValue, String classValue) {
    int count = 0;
    int numOrders = 0;
    for (Iterator it = orders.iterator(); it.hasNext();) {
        Instance instance = (Instance) it.next();
        if (!instance.stringValue(instance.classIndex()).equals(classValue))
            continue;
        ++numOrders;//  w  w  w. j  a v  a 2s.  c o  m

        if (instance.stringValue(attribute).equals(attrValue))
            ++count;

    }

    return ((double) count) / numOrders;
}

From source file:net.sf.jclal.activelearning.oracle.SimulatedOracle.java

License:Open Source License

public void showSingleLabelInstance(Instance instance) {

    System.out.println("\nInstance selected: " + instance.toString());
    System.out.println("Class: " + instance.stringValue(instance.classIndex()));
}

From source file:net.sf.jclal.classifier.WekaComitteClassifier.java

License:Open Source License

/**
 * Counts the votes of the committee for each class
 *
 * @param instance The instance to test.
 * @return The votes of the committee for each class.
 * @throws Exception The exception that will be launched
 * /*from  w ww .  j av a 2s .  co m*/
 */
public int[] countVotesForEachClass(Instance instance) throws Exception {

    int[] votes = new int[instance.dataset().numDistinctValues(instance.classIndex())];

    int sizeCommittee = classifiers.length;

    for (int i = 0; i < sizeCommittee; i++) {

        double v = classifiers[i].classifyInstance(instance);

        ++votes[(int) v];

    }

    return votes;
}