Example usage for weka.core Instance numAttributes

List of usage examples for weka.core Instance numAttributes

Introduction

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

Prototype

public int numAttributes();

Source Link

Document

Returns the number of attributes.

Usage

From source file:ann.MyANN.java

/**
 * mengubah Instance menjadi Data//  w w w .  j a v a  2 s. co m
 * @param instance Instance yang akan diubah menjadi kelas Data
 * @return kelas Data dari input
 */
private Data instanceToData(Instance instance) {
    ArrayList<Double> input = new ArrayList<>();
    ArrayList<Double> target = new ArrayList<>();
    for (int j = 0; j < instance.numAttributes() - 1; j++) {
        input.add(0.0);
    }
    if (instance.classAttribute().isNominal()) {
        for (int j = 0; j < instance.classAttribute().numValues(); j++) {
            target.add(0.0);
        }
    } else {
        target.add(0.0);
    }
    for (int j = 0; j < instance.numAttributes(); j++) {
        if (j == instance.classIndex()) {
            if (instance.attribute(j).isNominal())
                target.set((int) instance.value(j), 1.0);
            else
                target.add(instance.value(j));
        } else {
            input.set(j, instance.value(j));
        }
    }
    return new Data(input, target);
}

From source file:ann.SingleLayerPerceptron.java

public double classifyInstance(Instance inst) throws Exception {
    double instanceClass = 0.0;

    ntb.input(inst);//from w ww. j a va2 s . com
    inst = ntb.output();
    normalize.input(inst);
    inst = normalize.output();
    System.out.println(inst.toString());
    int outputSize = output.size();
    double[] result = new double[outputSize];
    for (int j = 0; j < outputSize; j++) {
        result[j] = 0.0;
        for (int k = 0; k < inst.numAttributes(); k++) {
            double input = 1;
            if (k < inst.numAttributes() - 1) {
                input = inst.value(k);
            }
            System.out.println(output.get(j).weights.get(k) + "*" + input);
            result[j] += output.get(j).weights.get(k) * input;
        }
        result[j] = Util.activationFunction(result[j], annOptions);
    }

    if (outputSize >= 2) {
        for (int j = 0; j < outputSize; j++) {
            System.out.print(result[j] + "-");
            if (result[j] > result[(int) instanceClass]) {

                instanceClass = j;
                System.out.println(instanceClass);
            }
        }
    } else {
        instanceClass = (int) result[0];
    }

    return instanceClass;
}

From source file:ANN_Single.SinglelayerPerceptron.java

@Override
public double classifyInstance(Instance i) {
    //buat list input
    System.out.println("classify");
    ArrayList<Double> listInput = new ArrayList<>();
    listInput.add(1.0);/*from   w w  w.  j  a  v a 2 s. co  m*/
    for (int idx = 0; idx < i.numAttributes() - 1; idx++) {
        listInput.add(i.value(idx));
    }

    //hitung output layer
    for (int idxOutput = 0; idxOutput < listOutput.size(); idxOutput++) {
        outputC(listInput, idxOutput);
        //           listOutput.get(idxOutput).output(listInput);
        //           listOutput.get(idxOutput).setValue(outputVal);
        //           System.out.println(idxOutput+" "+outputVal);
        //            System.out.print(listOutput.get(idxOutput).getValue()+" ");
    }
    System.out.println();
    double result = maxIdxValue(listOutput);
    //       System.out.println(result+" "+i.stringValue(i.classIndex()));
    System.out.println("end c");
    return result;
}

From source file:ANN_single2.MultilayerPerceptron.java

@Override
public double classifyInstance(Instance i) {
    ArrayList<Double> listInput = new ArrayList<>();
    listInput.add(1.0); //ini untuk bias
    for (int ins = 0; ins < i.numAttributes() - 1; ins++) {
        listInput.add(i.value(ins));//from w ww . j  ava 2s  . c o m
    }

    ArrayList<Double> listHide = new ArrayList<>();
    listHide.add(1.0);
    //Hitung output hidden layer
    for (int idxHidden = 1; idxHidden < listHidden.size(); idxHidden++) {
        output(listHidden, listInput, idxHidden);
        listHide.add(listHidden.get(idxHidden).getValue());
    }

    //Hitung ouput output lyer
    for (int idxOutput = 0; idxOutput < listOutput.size(); idxOutput++) {
        output(listOutput, listHide, idxOutput);
    }
    return maxValue();
}

From source file:ANN_single2.SinglelayerPerceptron.java

@Override
public double classifyInstance(Instance i) {
    ArrayList<Double> listInput = new ArrayList<>();
    listInput.add(1.0); //ini bias
    for (int idx = 0; idx < i.numAttributes() - 1; idx++) {
        listInput.add(i.value(idx));//from  w ww  . j  a  v  a 2  s . c o  m
    }

    //Hitung output rumus = sigmoid dari sigma
    for (int idxOut = 0; idxOut < listOutput.size(); idxOut++) {
        output(listInput, idxOut);
    }
    return maxValue();
}

From source file:ant.Game.java

private char keyFromWeka(int classifier) {

    char key = W;

    Instance i = new Instance(m_ant.getNumAttributes() + 1);
    i.setDataset(m_data);//from ww  w.  j av a 2  s. c  om
    for (int j = 0; j < i.numAttributes() - 1; ++j) {
        i.setValue(new Attribute(Integer.toString(j), j), see(j));
    }

    i.setClassValue(1);
    double p = -1;
    try {
        p = m_wrapper10x1.classifyInstance(i);
    } catch (Exception ex) {
        Logger.getLogger(Game.class.getName()).log(Level.SEVERE, null, ex);
    }

    switch ((int) p) {
    case 0:
        key = W;
        break;
    case 1:
        key = A;
        break;
    case 2:
        key = S;
        break;
    case 3:
        key = D;
        break;
    default:
        System.err.println("Unexpected classifier output!");
        break;
    }

    return key;
}

From source file:assign00.KNNClassifier.java

double EuclideanDistance(Instance instanceLHS, Instance instanceRHS) {
    double distance = 0;
    for (int i = 0; i < instanceLHS.numAttributes() - 1 && i < instanceRHS.numAttributes() - 1; i++) {
        if (instanceLHS.attribute(i).isNumeric() && instanceRHS.attribute(i).isNumeric()) {
            distance += pow(instanceLHS.value(i) - instanceRHS.value(i), 2);
        } else {/* ww w  . j  av  a  2 s  . c o m*/
            if (instanceLHS.stringValue(i).equals(instanceRHS.stringValue(i))) {
                distance += 0;
            } else {
                distance += 1;
            }
        }
    }

    return distance;
}

From source file:assign00.KNNClassifier.java

double ManhattenDistance(Instance instanceLHS, Instance instanceRHS) {
    double distance = 0;
    for (int i = 0; i < instanceLHS.numAttributes() - 1 && i < instanceRHS.numAttributes() - 1; i++) {
        if (instanceLHS.attribute(i).isNumeric() && instanceRHS.attribute(i).isNumeric()) {
            distance += abs(instanceLHS.value(i) - instanceRHS.value(i));
        } else {//w w  w  . j a  v a2s  .  co  m
            if (instanceLHS.stringValue(i).equals(instanceRHS.stringValue(i))) {
                distance += 0;
            } else {
                distance += 1;
            }
        }
    }

    return distance;
}

From source file:bme.mace.logicdomain.Evaluation.java

License:Open Source License

/**
 * Builds a string listing the attribute values in a specified range of
 * indices, separated by commas and enclosed in brackets.
 * // w  w  w  .j  a v  a  2  s  .c  om
 * @param instance the instance to print the values from
 * @param attRange the range of the attributes to list
 * @return a string listing values of the attributes in the range
 */
protected static String attributeValuesString(Instance instance, Range attRange) {
    StringBuffer text = new StringBuffer();
    if (attRange != null) {
        boolean firstOutput = true;
        attRange.setUpper(instance.numAttributes() - 1);
        for (int i = 0; i < instance.numAttributes(); i++) {
            if (attRange.isInRange(i) && i != instance.classIndex()) {
                if (firstOutput) {
                    text.append("(");
                } else {
                    text.append(",");
                }
                text.append(instance.toString(i));
                firstOutput = false;
            }
        }
        if (!firstOutput) {
            text.append(")");
        }
    }
    return text.toString();
}

From source file:ca.uottawa.balie.WekaLearner.java

License:Open Source License

private Instance CreateDoubleInstance(Object[] pi_Instance, String pi_Class) {
    double[] instval = new double[pi_Instance.length];
    for (int i = 0; i != pi_Instance.length; ++i) {
        instval[i] = ((Double) pi_Instance[i]).doubleValue();
    }// ww  w .jav a 2  s  .  c om
    Instance inst = new Instance(1, instval);
    inst.insertAttributeAt(inst.numAttributes());
    inst.setValue((Attribute) m_WekaAttributes.lastElement(), pi_Class);
    return inst;
}