Example usage for weka.core Instances Instances

List of usage examples for weka.core Instances Instances

Introduction

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

Prototype

public Instances(String name, ArrayList<Attribute> attInfo, int capacity) 

Source Link

Document

Creates an empty set of instances.

Usage

From source file:at.tuflowgraphy.semanticapps.semdroid.DalvikBaseAnalyzer.java

License:Apache License

protected Instances generateInstancesHeader(DActivationPatternPackage dActivationPatternPackage) {
    DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0);
    FastVector fvWekaAttributes = new FastVector(activationPatternTemp.getRawPattern().length);
    for (int j = 0; j < activationPatternTemp.getRawPattern().length; j++) {
        Attribute attribute = new Attribute(j + "");
        fvWekaAttributes.addElement(attribute);
    }/*  w  w  w . j av  a2 s .c o m*/

    Set<String> labelSet = getLabelSet(dActivationPatternPackage);

    FastVector classValues = new FastVector(labelSet.size());
    for (String label : labelSet) {
        classValues.addElement(label);
    }

    Attribute classAttribute = new Attribute("Class", classValues);
    fvWekaAttributes.addElement(classAttribute);

    Instances instances = new Instances(mAnalysisConfig.getApplicationAnalysisName(), fvWekaAttributes,
            dActivationPatternPackage.getActivationPatterns().size());
    instances.setClassIndex(instances.numAttributes() - 1);
    return instances;
}

From source file:at.tuflowgraphy.semanticapps.semdroid.utils.ArffHelper.java

License:Apache License

public Instances getWekaInstances(AnalysisChain analysisChain, String name) {
    Instances instances = null;/* w w  w  .ja va  2 s .  c  om*/
    List<DActivationPatternPackage> dActivationPatternPackages = analysisChain.getFinalLayers().get(0)
            .getResultAnalysisPackage().getActivationPatternPackages();
    int counter = 0;
    for (DActivationPatternPackage dActivationPatternPackage : dActivationPatternPackages) {
        if (counter > 0) {
            //                String resultFileName = arffFile.getName();
            //                String newName = resultFileName.split("_")[0];
            //                int index = resultFileName.indexOf("_");
            //                newName += "-MISSING-" + counter + "-"
            //                        + resultFileName.substring(index);
            //                arffFileToWriteTo = new File(arffFile.getParentFile(), newName);
            System.err.println("ERROR: Multiple activation pattern packages found! Should not happen...");
        }
        counter++;
        DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0);
        FastVector fvWekaAttributes = new FastVector(activationPatternTemp.getRawPattern().length);
        for (int j = 0; j < activationPatternTemp.getRawPattern().length; j++) {
            Attribute attribute = new Attribute(j + "");
            fvWekaAttributes.addElement(attribute);
        }

        Set<String> labelSet = getLabelSet(dActivationPatternPackage);

        FastVector classValues = new FastVector(labelSet.size());
        for (String label : labelSet) {
            classValues.addElement(label);
        }

        Attribute classAttribute = new Attribute("Class", classValues);
        fvWekaAttributes.addElement(classAttribute);

        instances = new Instances(name, fvWekaAttributes,
                dActivationPatternPackage.getActivationPatterns().size());
        instances.setClassIndex(instances.numAttributes() - 1);

        for (int i = 0; i < dActivationPatternPackage.getActivationPatterns().size(); i++) {
            DActivationPattern activationPattern = dActivationPatternPackage.getActivationPatterns().get(i);
            Instance instance = new Instance(fvWekaAttributes.size());

            for (int j = 0; j < activationPattern.getRawPattern().length; j++) {
                instance.setValue((Attribute) fvWekaAttributes.elementAt(j),
                        activationPattern.getRawPattern()[j]);
            }

            instance.setDataset(instances);

            DSimpleStringMetaData metadata = (DSimpleStringMetaData) activationPattern.getMetaData();
            List<String> keys = metadata.getMetaDataKeys();
            for (int k = 0; k < keys.size(); k++) {
                if (keys.get(k).equals(DalvikInputPlugin.TAG_LABEL)) {
                    String label = metadata.getMetaDataEntries().get(k);

                    // TODO: dynamically add new labels to instances so that getLabelSet for-loop is not required

                    // System.out.println(label);
                    // if(!labelSet.contains(label)) {
                    // labelSet.add(label);
                    // // classValues.addElement(label);
                    // classAttribute.addStringValue(label);
                    // instances.attribute(instances.classIndex()).addValue(label);
                    // System.out.println("ADDED " + label);
                    // }
                    instance.setClassValue(label);
                    // TODO: only first class value used
                    break;
                }
            }
            instances.add(instance);
        }

    }
    return instances;
}

From source file:boa.aggregators.DecisionTreeAggregator.java

License:Apache License

/** {@inheritDoc} */
@Override// w  w w. ja  v a2  s  . co  m
public void finish() throws IOException, InterruptedException {
    int NumOfAttributes = this.getVectorSize();
    List<Attribute> attributes = new ArrayList<Attribute>();
    FastVector fvAttributes = new FastVector(NumOfAttributes);

    for (int i = 0; i < NumOfAttributes; i++) {
        attributes.add(new Attribute("Attribute" + i));
        fvAttributes.addElement(attributes.get(i));
    }

    Instances trainingSet = new Instances("DecisionTree", fvAttributes, 1);
    trainingSet.setClassIndex(NumOfAttributes - 1);

    for (List<Double> vector : this.vectors.values()) {
        Instance instance = new Instance(NumOfAttributes);
        for (int i = 0; i < vector.size(); i++) {
            instance.setValue((Attribute) fvAttributes.elementAt(i), vector.get(i));
        }
        trainingSet.add(instance);
    }

    try {
        this.model = new J48();
        this.model.setOptions(options);
        this.model.buildClassifier(trainingSet);
    } catch (Exception ex) {
    }

    this.saveModel(this.model);
}

From source file:boa.aggregators.LinearRegressionAggregator.java

License:Apache License

/** {@inheritDoc} */
@Override/*ww w .  ja  va2 s .  c  o  m*/
public void finish() throws IOException, InterruptedException {
    int NumOfAttributes = this.getVectorSize();
    List<Attribute> attribute = new ArrayList<Attribute>();
    FastVector fvAttributes = new FastVector(NumOfAttributes);

    for (int i = 0; i < NumOfAttributes; i++) {
        attribute.add(new Attribute("Attribute" + i));
        fvAttributes.addElement(attribute.get(i));
    }

    Instances trainingSet = new Instances("LinearRegression", fvAttributes, 1);
    trainingSet.setClassIndex(NumOfAttributes - 1);

    for (List<Double> vector : this.vectors.values()) {
        Instance instance = new Instance(NumOfAttributes);
        for (int i = 0; i < vector.size(); i++) {
            instance.setValue((Attribute) fvAttributes.elementAt(i), vector.get(i));
        }
        trainingSet.add(instance);
    }

    try {
        this.model = new LinearRegression();
        this.model.setOptions(options);
        this.model.buildClassifier(trainingSet);
    } catch (Exception ex) {
    }

    this.saveModel(this.model);
}

From source file:boa.aggregators.NaiveBayesAggregator.java

License:Apache License

/** {@inheritDoc} */
@Override//from w ww . j av a  2  s . c  om
public void finish() throws IOException, InterruptedException {

    Instances trainingSet = new Instances("NaiveBayes", fvAttributes, 1);
    trainingSet.setClassIndex(NumOfAttributes - 1);

    for (List<Double> vector : this.vectors.values()) {
        Instance instance = new Instance(NumOfAttributes);
        for (int i = 0; i < vector.size(); i++) {
            instance.setValue((Attribute) fvAttributes.elementAt(i), vector.get(i));
        }
        trainingSet.add(instance);
    }

    try {
        this.model = new NaiveBayes();
        this.model.setOptions(options);
        this.model.buildClassifier(trainingSet);
    } catch (Exception ex) {
    }

    this.saveModel(this.model);
}

From source file:boa.aggregators.RandomForestAggregator.java

License:Apache License

/** {@inheritDoc} */
@Override/*w  w  w . j ava2 s . c  om*/
public void finish() throws IOException, InterruptedException {
    int NumOfAttributes = this.getVectorSize();
    List<Attribute> attributes = new ArrayList<Attribute>();
    FastVector fvAttributes = new FastVector(NumOfAttributes);

    for (int i = 0; i < NumOfAttributes; i++) {
        attributes.add(new Attribute("Attribute" + i));
        fvAttributes.addElement(attributes.get(i));
    }

    Instances trainingSet = new Instances("RandomForest", fvAttributes, 1);
    trainingSet.setClassIndex(NumOfAttributes - 1);

    for (List<Double> vector : this.vectors.values()) {
        Instance instance = new Instance(NumOfAttributes);
        for (int i = 0; i < vector.size(); i++) {
            instance.setValue((Attribute) fvAttributes.elementAt(i), vector.get(i));
        }
        trainingSet.add(instance);
    }

    try {
        this.model = new RandomForest();
        this.model.setOptions(options);
        this.model.buildClassifier(trainingSet);
    } catch (Exception ex) {
    }

    this.saveModel(this.model);
}

From source file:boa.functions.BoaIntrinsics.java

License:Apache License

/**
 * Classify instances for given ML model
 *
 * @param Take Model Type//  www. j  av  a 2  s.  c o  m
 * @return Predicted value for a instance
 */
@FunctionSpec(name = "classify", returnType = "float", formalParameters = { "Model", "array of float" })
public static double classify(final Object model, final double[] vector) throws Exception {
    List<Attribute> attribute = new ArrayList<Attribute>();
    int size = vector.length;
    int NumOfAttributes = size + 1;

    FastVector fvAttributes = new FastVector(NumOfAttributes);
    for (int i = 0; i < NumOfAttributes; i++) {
        attribute.add(new Attribute("Attribute" + i));
        fvAttributes.addElement(attribute.get(i));
    }

    Instances testingSet = new Instances("Classifier", fvAttributes, 1);
    testingSet.setClassIndex(NumOfAttributes - 1);

    Instance instance = new Instance(NumOfAttributes);
    for (int i = 0; i < size; i++) {
        instance.setValue((Attribute) fvAttributes.elementAt(i), vector[i]);
    }

    Classifier classifier = (Classifier) model;
    double predval = classifier.classifyInstance(instance);

    return predval;
}

From source file:boostingPL.boosting.InstancesHelper.java

License:Open Source License

/**
 * create instances header from metadata,
 * the metadata like this:/*from   ww w .j  a v a 2  s  .  c  om*/
 * 
 *   <br/>
 *   <p>attributesNum:100</p>
 *   <p>classes:+1,-1</p>
 *   <br/>
 * 
 * @param in
 * @return
 * @throws IOException
 */
public static Instances createInstancesFromMetadata(LineReader in) throws IOException {
    int attributesNum = 0;
    ArrayList<Attribute> attInfo = null;
    List<String> classItems = null;

    Text line = new Text();
    while (in.readLine(line) > 0) {
        String sline = line.toString();
        if (sline.startsWith("attributesNum:")) {
            attributesNum = Integer.parseInt(sline.substring(14));
            attInfo = new ArrayList<Attribute>(attributesNum + 1);
            for (int i = 0; i < attributesNum; i++) {
                attInfo.add(new Attribute("attr" + i));
            }

            System.out.println("AttributeNum:" + attributesNum);
        } else if (sline.startsWith("classes:")) {
            String classes = sline.substring(8);
            String[] citems = classes.split(",");
            classItems = new ArrayList<String>(citems.length);
            for (String s : citems) {
                classItems.add(s);
            }

            System.out.println("classes:" + classes);
        }
    }

    attInfo.add(new Attribute("class", classItems));
    Instances insts = new Instances("BoostingPL-dataset", attInfo, 0);
    insts.setClassIndex(insts.numAttributes() - 1);

    return insts;
}

From source file:boostingPL.boosting.InstancesHelper.java

License:Open Source License

/**
 * create instances header from a instance
 * /*  w w  w  . j  ava  2s.co m*/
 * @param instance
 * @return instances
 */
public static Instances createInstances(String text) {
    String[] items = text.split(" ");

    ArrayList<Attribute> attInfo = new ArrayList<Attribute>();
    for (int i = 0; i < items.length - 1; i++) {
        attInfo.add(new Attribute("attr" + i));
    }

    List<String> classItems = new ArrayList<String>(2);
    classItems.add("1");
    classItems.add("-1");
    attInfo.add(new Attribute("class", classItems));
    Instances insts = new Instances("BoostingPL-dataset", attInfo, 0);
    insts.setClassIndex(insts.numAttributes() - 1);

    return insts;
}

From source file:br.com.edu.arff.ConstructArff.java

public static void main(String[] args) throws Exception {
    FastVector atts;/*from  w w w. ja  v a  2 s.c om*/
    FastVector attsRel;
    FastVector attVals;
    FastVector attValsRel;
    Instances data;
    Instances dataRel;
    double[] vals;
    double[] valsRel;
    int i, j, cont;

    ConnectionLAK conexao = new ConnectionLAK();
    ArrayList<String> uris;
    ArrayList<String> todos_topicos;
    ArrayList<Topicos> valores;

    uris = conexao.buscaURIS();
    todos_topicos = conexao.BuscarTodosTopicos();

    atts = new FastVector();
    for (String topicos : todos_topicos) {
        atts.addElement(new Attribute(topicos));
    }

    data = new Instances("Relacao", atts, 0);

    for (String uri : uris) {
        i = 0;
        vals = new double[data.numAttributes()];
        valores = conexao.BuscarTopicos(uri);
        for (int t = 0; t < data.numAttributes(); t++) {
            for (Topicos topic : valores) {
                String comparacao = topic.getTopico();
                String atributo = data.attribute(t).name();
                if (comparacao.equals(atributo)) {
                    vals[t] = topic.getValor();
                    break;
                }
            }
        }

        data.add(new Instance(1.0, vals));
    }

    System.out.println(data);
}