Example usage for weka.core Instance classAttribute

List of usage examples for weka.core Instance classAttribute

Introduction

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

Prototype

public Attribute classAttribute();

Source Link

Document

Returns class attribute.

Usage

From source file:smo2.SMO.java

License:Open Source License

public void mygenstat(Instances m_tinst) {
    System.out.println("remove text till here...");
    String[] m_cnames = this.classAttributeNames();
    try {/*from   w ww.  j av  a 2 s  .  c o m*/
        for (int m_k = 0; m_k < m_tinst.numInstances(); m_k++) {
            Instance mc_inst = m_tinst.instance(m_k);
            String m_classname = mc_inst.stringValue(mc_inst.classAttribute());
            // Instance mc_wmiss = (Instance)mc_inst.copy();
            // mc_wmiss.setData(m_tinst);
            // double mpval =
            // ((Classifier)classifier).classifyInstance(mc_wmiss);

            /*
             * int m_rid=0; if(m_classname.equals(m_cnames[0])) { m_rid =0;
             * }else if(m_classname.equals(m_cnames[1])){ m_rid=1; }else{
             * System.out.println("unknown class: m_classname " +
             * m_classname + ", m_cname " + m_cnames[0] + ", " +
             * m_cnames[1]); System.exit(1); }
             */

            // System.out.println("classvalue " + mc_inst.classValue() +
            // " , classname " + m_classname);
            double m_output = obtainVotes(mc_inst);
            double[][] m_bias = bias();
            double m_myscore = myScore(m_output, m_bias[0][1]);

            // if(mc_inst.classAttribute().isNumeric())
            // {
            // System.out.println(m_k + "]class=" + m_classname + ",output="
            // + m_output + ",bias=" + m_bias[0][1] + ",score=" +
            // m_myscore+",pred="+mpval);
            // }else{
            // String m_pclass = mc_inst.classAttribute().value((int)mpval);
            // double
            // mprob=classifier.distributionForInstance(withMissing)[(int)mpval];
            // System.out.println(m_k + "]class=" + m_classname + ",output="
            // + m_output + ",bias=" + m_bias[0][1] + ",score=" +
            // m_myscore+",pred="+m_pclass+",prob="+m_prob);
            // }

            System.out.println(m_k + "]class=" + m_classname + ",output=" + m_output + ",bias=" + m_bias[0][1]
                    + ",score=" + m_myscore);
        }
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println(e.getMessage());
    }

}

From source file:tubes1.myClassifiers.myC45.java

public int[] calculateCount(Instances instances) {

    int numClasses = instances.classAttribute().numValues();
    int numInstances = instances.numInstances();
    int[] num = new int[numClasses];
    for (int i = 0; i < numClasses; i++) {
        num[i] = 0;//from   w  w  w .  j  a v a2  s  .  c om
    }
    for (int i = 0; i < numInstances; i++) {
        Instance instance = instances.instance(i);
        double classValue = instance.value(instance.classAttribute());
        int classIndex = (int) classValue;
        num[classIndex]++;
    }
    return num;
}

From source file:xlong.urlclassify.others.LibLINEAR.java

License:Open Source License

/**
 * Computes the distribution for a given instance.
 *
 * @param instance       the instance for which distribution is computed
 * @return          the distribution//from   w  w  w  .  j  a va2 s.co m
 * @throws Exception       if the distribution can't be computed successfully
 */
public double[] distributionForInstance(Instance instance) throws Exception {

    if (!getDoNotReplaceMissingValues()) {
        m_ReplaceMissingValues.input(instance);
        m_ReplaceMissingValues.batchFinished();
        instance = m_ReplaceMissingValues.output();
    }

    if (getConvertNominalToBinary() && m_NominalToBinary != null) {
        m_NominalToBinary.input(instance);
        m_NominalToBinary.batchFinished();
        instance = m_NominalToBinary.output();
    }

    if (m_Filter != null) {
        m_Filter.input(instance);
        m_Filter.batchFinished();
        instance = m_Filter.output();
    }

    FeatureNode[] x = instanceToArray(instance);
    double[] result = new double[instance.numClasses()];
    if (m_ProbabilityEstimates) {
        if (m_SolverType != SolverType.L2R_LR && m_SolverType != SolverType.L2R_LR_DUAL
                && m_SolverType != SolverType.L1R_LR) {
            throw new WekaException("probability estimation is currently only "
                    + "supported for L2-regularized logistic regression");
        }

        int[] labels = m_Model.getLabels();
        double[] prob_estimates = new double[instance.numClasses()];

        Linear.predictProbability(m_Model, x, prob_estimates);

        // Return order of probabilities to canonical weka attribute order
        for (int k = 0; k < labels.length; k++) {
            result[labels[k]] = prob_estimates[k];
        }
    } else {
        int prediction = Linear.predict(m_Model, x);
        assert (instance.classAttribute().isNominal());
        result[prediction] = 1;
    }

    return result;
}