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:fantail.algorithms.BinaryART.java

License:Open Source License

private Instances[] splitData(Instances data, int attIndex, double splitPoint) throws Exception {

    Instances[] subsets = new Instances[2];
    subsets[0] = new Instances(data, 0);
    subsets[1] = new Instances(data, 0);

    // changed on 7 Feb 2013, because for some LR datasets, the Alpo returns NaN
    int halfPoint = (int) (data.numInstances() * 0.50);
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = data.instance(i);
        if (inst.value(attIndex) <= splitPoint && subsets[0].numInstances() < halfPoint) {
            subsets[0].add(inst);/*from  w w w.j  a va  2  s  .  co m*/
        } else {
            subsets[1].add(inst);
        }
    }

    if (subsets[1].numInstances() == 0) {
        subsets[1].add(subsets[0].instance(0));
    }

    if (subsets[0].numInstances() == 0) {
        subsets[0].add(subsets[1].instance(0));
    }
    return subsets;

    // following were used before 7 Feb 2013
    //        for (int i = 0; i < data.numInstances(); i++) {
    //            Instance inst = data.instance(i);
    //            if (inst.value(attIndex) <= splitPoint) {
    //                subsets[0].add(inst);
    //            } else {
    //                subsets[1].add(inst);
    //            }
    //        }
    //
    //        if (subsets[1].numInstances() == 0) {
    //            subsets[1].add(subsets[0].instance(0));
    //        }
    //
    //        if (subsets[0].numInstances() == 0) {
    //            subsets[0].add(subsets[1].instance(0));
    //        }
    //        return subsets;
}

From source file:fantail.algorithms.BinaryART.java

License:Open Source License

private double getMedian2(Instances data, int attIndex) throws Exception {
    double[] numArray = new double[data.numInstances()];
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = data.instance(i);
        numArray[i] = inst.value(attIndex);
    }//from w  w w  .j  a v a  2s.c om
    Arrays.sort(numArray);
    double median;
    if (numArray.length % 2 == 0) {
        median = ((double) numArray[numArray.length / 2] + (double) numArray[numArray.length / 2 + 1]) / 2;
    } else {
        median = (double) numArray[numArray.length / 2];
    }
    return median;
}

From source file:fantail.algorithms.BinaryART.java

License:Open Source License

private double getMedian(Instances data, int attIndex) throws Exception {

    if (false) {/*from  w  w w.j ava2 s.  com*/
        return getMedian2(data, attIndex); // added 07-july 2013; actually they are the same
        // removed 17/07/2013 
    }

    DescriptiveStatistics stats = new DescriptiveStatistics();
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = (Instance) data.instance(i);
        stats.addValue(inst.value(attIndex));
    }
    double median = stats.getPercentile(50);
    return median;
}

From source file:fantail.algorithms.BinaryART.java

License:Open Source License

@Override
public double[] recommendRanking(Instance metaInst) throws Exception {
    if (m_Attribute == null) {
        return Tools.doubleArrayToRanking(m_Prototype);
    } else {//w  w  w. ja  v a  2s  .  c o  m
        if (metaInst.value(m_Attribute) <= m_SplitPoint) {
            return m_Successors[0].recommendRanking(metaInst);
        } else {
            return m_Successors[1].recommendRanking(metaInst);
        }
    }
}

From source file:fantail.algorithms.RankingViaRegression.java

License:Open Source License

@Override
public void buildRanker(Instances data) throws Exception {

    Instances workingData = new Instances(data);
    //Instance instTemp = workingData.instance(0);

    //m_LastFeatureIndex = workingData.numAttributes() - 1;
    m_NumFeatures = workingData.numAttributes() - 1;
    m_NumTargets = Tools.getNumberTargets(data);
    m_Classifiers = new AbstractClassifier[m_NumTargets];

    for (int i = 0; i < m_NumTargets; i++) {
        weka.classifiers.functions.LinearRegression lr = new weka.classifiers.functions.LinearRegression();
        m_Classifiers[i] = AbstractClassifier.makeCopy(lr);
    }/*from ww  w . ja v  a  2 s  . c  om*/

    Instances[] trainingSets = new Instances[m_NumTargets];

    for (int t = 0; t < m_NumTargets; t++) {

        ArrayList attributes = new ArrayList();
        for (int i = 0; i < m_NumFeatures; i++) {
            attributes.add(new Attribute(workingData.attribute(i).name()));
        }

        String targetName = "att-" + (t + 1);
        attributes.add(new Attribute(targetName));

        trainingSets[t] = new Instances("data-" + targetName, attributes, 0);

        for (int j = 0; j < workingData.numInstances(); j++) {
            Instance metaInst = workingData.instance(j);
            double[] ranking = Tools.getTargetVector(metaInst);
            double[] values = new double[trainingSets[t].numAttributes()];

            for (int m = 0; m < (trainingSets[t].numAttributes() - 1); m++) {
                values[m] = metaInst.value(m);
            }
            values[values.length - 1] = ranking[t];
            trainingSets[t].add(new DenseInstance(1.0, values));
        }

        trainingSets[t].setClassIndex(trainingSets[t].numAttributes() - 1);
        m_Classifiers[t].buildClassifier(trainingSets[t]);
    }

    m_TempHeader = new Instances(trainingSets[0], 0);
}

From source file:fantail.algorithms.RankingViaRegression.java

License:Open Source License

@Override
public double[] recommendRanking(Instance metaInst) throws Exception {

    double[] values = new double[m_NumFeatures + 1];
    for (int i = 0; i < values.length - 1; i++) {
        values[i] = metaInst.value(i);
    }//from   ww  w .  j a  va  2 s.c o  m
    values[values.length - 1] = 0;

    Instance inst = new DenseInstance(1.0, values);
    inst.setDataset(m_TempHeader);

    //
    double[] preds = new double[m_NumTargets];

    for (int t = 0; t < m_NumTargets; t++) {

        double pred = m_Classifiers[t].classifyInstance(inst);
        if (pred <= 0) {
            pred = 0;
        }
        if (pred >= m_NumTargets) {
            pred = m_NumTargets;
        }
        preds[t] = pred;
    }

    return Tools.doubleArrayToRanking(preds);
}

From source file:fantail.algorithms.RankingWithBinaryPCT.java

License:Open Source License

private Instances[] splitData(Instances data, int attIndex, double splitPoint) throws Exception {
    Instances[] subsets = new Instances[2];
    subsets[0] = new Instances(data, 0);
    subsets[1] = new Instances(data, 0);

    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = data.instance(i);
        if (inst.value(attIndex) <= splitPoint && (subsets[0].numInstances() <= 0.5 * data.numInstances())) {
            subsets[0].add(inst);/*from w ww. j ava 2  s. c om*/
        } else {
            subsets[1].add(inst);
        }
    }
    // TODO: 
    if (subsets[1].numInstances() == 0) {
        subsets[1].add(subsets[0].instance(0));
    }
    if (subsets[0].numInstances() == 0) {
        subsets[0].add(subsets[1].instance(0));
    }
    return subsets;
}

From source file:fantail.algorithms.RankingWithBinaryPCT.java

License:Open Source License

private Instances[] splitData2(Instances data, int attIndex, double splitPoint) throws Exception {
    Instances[] subsets = new Instances[2];
    subsets[0] = new Instances(data, 0);
    subsets[1] = new Instances(data, 0);
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = data.instance(i);
        if (inst.value(attIndex) <= splitPoint) {
            subsets[0].add(inst);/*from   w w w  .  j a  v  a 2s  .  c  o m*/
        } else {
            subsets[1].add(inst);
        }
    }
    // TODO: 
    if (subsets[1].numInstances() == 0) {
        subsets[1].add(subsets[0].instance(0));
    }
    if (subsets[0].numInstances() == 0) {
        subsets[0].add(subsets[1].instance(0));
    }
    return subsets;
}

From source file:fantail.algorithms.RankingWithBinaryPCT.java

License:Open Source License

private double getMedian(Instances data, int attIndex) throws Exception {
    DescriptiveStatistics stats = new DescriptiveStatistics();
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = (Instance) data.instance(i);
        stats.addValue(inst.value(attIndex));
    }/*from   w w  w.j av  a  2  s  .  c  o  m*/
    double median = stats.getPercentile(50);
    return median;
}

From source file:fantail.algorithms.RankingWithBinaryPCT.java

License:Open Source License

@Override
public double[] recommendRanking(Instance metaInst) throws Exception {
    if (m_Attribute == null) {
        return m_Prototype;
    } else {/*from  w w w.  j a  v a2 s .  c om*/
        if (metaInst.value(m_Attribute) <= m_SplitPoint) {
            return m_Successors[0].recommendRanking(metaInst);
        } else {
            return m_Successors[1].recommendRanking(metaInst);
        }
    }
}