Example usage for weka.core Instance value

List of usage examples for weka.core Instance value

Introduction

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

Prototype

public double value(Attribute att);

Source Link

Document

Returns an instance's attribute value in internal format.

Usage

From source file:myID3.MyId3.java

/**
* Classifies a given test instance using the decision tree.
*
* @param instance the instance to be classified
* @return the classification//  ww  w  .  j a  v a  2 s  . co m
* @throws NoSupportForMissingValuesException if instance has missing values
*/
public double classifyInstance(Instance instance) throws NoSupportForMissingValuesException {
    if (instance.hasMissingValue()) {
        throw new NoSupportForMissingValuesException("Id3: no missing values, " + "please.");
    }
    if (currentAttribute == null) {
        return classValue;
    } else {
        return nodes[(int) instance.value(currentAttribute)].classifyInstance(instance);
    }
}

From source file:myID3.MyId3.java

/**
 * Computes class distribution for instance using decision tree.
 *
 * @param instance the instance for which distribution is to be computed
 * @return the class distribution for the given instance
 * @throws NoSupportForMissingValuesException if instance has missing values
 *//*  w  w w .j a v a2  s  . c  o m*/
public double[] distributionForInstance(Instance instance) throws NoSupportForMissingValuesException {
    if (instance.hasMissingValue()) {
        throw new NoSupportForMissingValuesException("Id3: no missing values, " + "please.");
    }
    if (currentAttribute == null) {
        return classDistribution;
    } else {
        return nodes[(int) instance.value(currentAttribute)].distributionForInstance(instance);
    }
}

From source file:myid3andc45classifier.Model.MyC45.java

@Override
public double classifyInstance(Instance instance) {
    int i = 0;/*from ww  w  .  j  av a  2 s .com*/
    if (attribute == null) {
        return label;
    } else {
        boolean numeric = false;
        for (int j = 0; j < instance.numAttributes(); j++) {
            if (instance.attribute(j).isNumeric()) {
                if (instance.attribute(j).name().equalsIgnoreCase(attribute.name().split(" ")[0])) {
                    numeric = true;
                    break;
                }
                i++;
            }
        }
        if (numeric) {
            double threshold = Double.parseDouble(attribute.name().split(" ")[1]);
            //System.out.println("WOWW!!! " + attribute.name() + " threshold is " + threshold);
            double val = (double) instance.value(i);
            if (val <= threshold) {
                return successors[(int) attribute.indexOfValue("<=" + threshold)].classifyInstance(instance);
                //instance.setValue(attribute, "<="+threshold);
            } else {
                return successors[(int) attribute.indexOfValue(">" + threshold)].classifyInstance(instance);
                //instance.setValue(attribute, ">"+threshold);
            }
        }

        return successors[(int) instance.value(attribute)].classifyInstance(instance);
    }

}

From source file:myid3andc45classifier.Model.MyC45.java

public Instances[] splitInstancesByAttribute(Instances data, Attribute attr) throws Exception {
    //Split data menjadi beberapa instances sesuai dengan jumlah jenis data pada atribut
    Instances[] splitData = new Instances[attr.numValues()];

    for (int i = 0; i < attr.numValues(); i++) {
        splitData[i] = new Instances(data, data.numInstances());
    }//from   ww  w  .j a v a 2s .  c  om

    Enumeration instanceEnum = data.enumerateInstances();
    while (instanceEnum.hasMoreElements()) {
        Instance inst = (Instance) instanceEnum.nextElement();
        splitData[(int) inst.value(attr)].add(inst);
    }

    for (int i = 0; i < splitData.length; i++) {
        splitData[i].compactify();
    }

    return splitData;
}

From source file:myid3andc45classifier.Model.MyID3.java

@Override
public double classifyInstance(Instance instance) throws NoSupportForMissingValuesException {

    //Periksa apakah instance memiliki missing value
    if (instance.hasMissingValue()) {
        throw new NoSupportForMissingValuesException("MyID3: no missing values, please");
    }/*from  ww w  .j  a va 2 s . c  om*/

    if (attribute == null) {
        return label;
    } else {
        return successors[(int) instance.value(attribute)].classifyInstance(instance);
    }

}

From source file:myJ48.MyJ48.java

/**
 * Computes class distribution for instance using decision tree.
 *
 * @param instance the instance for which distribution is to be computed
 * @return the class distribution for the given instance
 * @throws NoSupportForMissingValuesException if instance has missing values
 *///from  w w  w .j  a v  a 2 s .  c o  m
public double[] distributionForInstance(Instance instance) throws NoSupportForMissingValuesException {
    if (instance.hasMissingValue()) {
        throw new NoSupportForMissingValuesException("Missing value error");
    }
    if (currentAttribute == null) {
        return classDistribution;
    } else {
        return nodes[(int) instance.value(currentAttribute)].distributionForInstance(instance);
    }
}

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++;//w  w  w  .  j  a v 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:NaiveBayes.NaiveBayes13514004.java

@Override
public void buildClassifier(Instances i) {
    //Algoritma/* w w  w.  j a va  2 s.com*/
    origin = new Instances(i);
    //Menghitung jumlah attribute dan kelas
    numAtt = i.numAttributes() - 1;
    numClass = i.numClasses();

    //Inisialisasi matrix 3 dimensi
    data = new int[numAtt][numClass][0];
    prob = new double[numAtt][numClass][0];
    kelasdata = new int[numClass];
    kelasprob = new double[numClass];

    Enumeration<Instance> enu1 = i.enumerateInstances();
    while (enu1.hasMoreElements()) {
        Instance ins = enu1.nextElement();
        Enumeration<Attribute> enu_t = i.enumerateAttributes();
        int x = 0;
        while (enu_t.hasMoreElements()) {
            Attribute att = enu_t.nextElement();
            numDis = att.numValues();
            data[x][(int) ins.classValue()] = new int[numDis];
            prob[x][(int) ins.classValue()] = new double[numDis];
            x++;
        }
    }

    //Mengisi matriks Frekuensi
    Enumeration<Instance> enu2 = i.enumerateInstances();
    while (enu2.hasMoreElements()) {
        Instance ins = enu2.nextElement();
        Enumeration<Attribute> enu_t = i.enumerateAttributes();
        int x = 0;
        while (enu_t.hasMoreElements()) {
            Attribute att = enu_t.nextElement();
            data[x][(int) ins.classValue()][(int) ins.value(att)]++;
            x++;
        }
        kelasdata[(int) ins.classValue()]++;
    }

    //Menghitung probabilitas kelas
    double numInstances = (double) i.numInstances();
    for (int y = 0; y < numClass; y++) {
        kelasprob[y] = (double) kelasdata[y] / numInstances;
    }

    //Mengisi matriks probabilitas
    Enumeration<Instance> enu3 = i.enumerateInstances();
    while (enu3.hasMoreElements()) {
        Instance ins = enu3.nextElement();
        Enumeration<Attribute> enu_t = i.enumerateAttributes();
        int x = 0;
        while (enu_t.hasMoreElements()) {
            Attribute att = enu_t.nextElement();
            int sumDis = Utils.sum(data[x][(int) ins.classValue()]);
            numDis = att.numValues();
            for (int z = 0; z < numDis; z++) {
                int y = (int) ins.classValue();
                prob[x][y][z] = ((double) data[x][y][z] / (double) sumDis);
            }
            x++;
        }
    }

}

From source file:NaiveBayes.NaiveBayes13514004.java

@Override
public double[] distributionForInstance(Instance instnc) throws Exception {
    Attribute ins;//from w w w .  j a  v  a 2  s  .  c  o m
    double[] result = new double[numClass];

    //Algoritma
    //Menghitung probabilitas
    for (int j = 0; j < numClass; j++) {
        result[j] = kelasprob[j];
        Enumeration<Attribute> e2 = instnc.enumerateAttributes();
        int i = 0;
        while (e2.hasMoreElements()) {
            ins = e2.nextElement();
            result[j] = result[j] * prob[i][j][(int) instnc.value(ins)];
            i++;
        }
    }

    return result;
}

From source file:net.sf.bddbddb.order.MyId3.java

License:LGPL

/**
 * Classifies a given test instance using the decision tree.
 * //from ww w  .j  a  v a  2  s  .c  om
 * @param instance
 *            the instance to be classified
 * @return the classification
 */
public double classifyInstance(Instance instance) {
    if (m_Attribute == null) {
        return m_ClassValue;
    } else if (instance.isMissing(m_Attribute)) {
        try {
            // Use superclass implementation, which uses distributionForInstance.
            return super.classifyInstance(instance);
        } catch (Exception x) {
            x.printStackTrace();
            Assert.UNREACHABLE();
            return 0.;
        }
    } else {
        return m_Successors[(int) instance.value(m_Attribute)].classifyInstance(instance);
    }
}