Example usage for weka.core Instances add

List of usage examples for weka.core Instances add

Introduction

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

Prototype

@Override
public boolean add(Instance instance) 

Source Link

Document

Adds one instance to the end of the set.

Usage

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

License:Apache License

protected void addLastXWekaInstances(Instances instances, int numberOfInstances, List<Object> linkedObjects) {
    // TODO: use ResultEntry instead of List<Object>
    if (numberOfInstances <= 0) {
        return;//from  www  . jav a2s .  c  o m
    }
    List<DActivationPatternPackage> dActivationPatternPackages = mAnalysisChain.getFinalLayers().get(0)
            .getResultAnalysisPackage().getActivationPatternPackages();
    int counter = 0;
    for (DActivationPatternPackage dActivationPatternPackage : dActivationPatternPackages) {
        DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0);
        if (counter > 0) {
            throw new RuntimeException("More than one DActivationPatternPackage found!");
        }
        counter++;

        for (int i = numberOfInstances - 1; i >= 0; i--) {
            DActivationPattern activationPattern = dActivationPatternPackage.getActivationPatterns()
                    .get(dActivationPatternPackage.getActivationPatterns().size() - 1 - i);
            Instance instance = new Instance(activationPatternTemp.getRawPattern().length + 1);

            for (int j = 0; j < activationPattern.getRawPattern().length; j++) {
                instance.setValue(j, activationPattern.getRawPattern()[j]);
            }
            instances.add(instance);
            instance.setDataset(instances);

            if (linkedObjects != null) {
                DBasicMetaData d = activationPattern.getMetaData();
                if (d instanceof DObjectLinkMetaData) {
                    Object o = ((DObjectLinkMetaData) d).getLinkedObject();
                    linkedObjects.add(o);
                } else {
                    throw new IllegalArgumentException(
                            "Wrong metadata type attached! Must be DObjectLinkMetaData!");
                }
            }
        }

    }
}

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

License:Apache License

public Instances getWekaInstances() {
    Instances instances = null;
    List<DActivationPatternPackage> dActivationPatternPackages = mAnalysisChain.getFinalLayers().get(0)
            .getResultAnalysisPackage().getActivationPatternPackages();
    int counter = 0;
    for (DActivationPatternPackage dActivationPatternPackage : dActivationPatternPackages) {
        if (counter > 0) {
            throw new RuntimeException("More than one DActivationPatternPackage found!");
        }/*from  w w w. j  a  v a2  s. c  o  m*/
        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(mAnalysisConfig.getApplicationAnalysisName(), 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);
                    instance.setClassValue(label);
                    break;
                }
            }

            instances.add(instance);
        }

    }
    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;
    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...");
        }/*from ww  w  . ja v  a2  s .com*/
        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/*from   w  w w.  ja  v  a2s. 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("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/*from   w w  w . ja v a 2  s. c om*/
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 o  m*/
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/*from  w w w .  j  a  v a2  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:br.com.edu.arff.ConstructArff.java

public static void main(String[] args) throws Exception {
    FastVector atts;//from  w  w w.  j a v a 2s.c  o  m
    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);
}

From source file:br.fapesp.myutils.MyUtils.java

License:Open Source License

public static Instances genGaussianDatasetWithSigmaEvolution(double[][] centers, double[][] sigmas,
        double[][] sigmas2, int pointsPerCluster, long seed, boolean randomize) {
    Instances dataset1 = genGaussianDataset(centers, sigmas, pointsPerCluster, seed, randomize, false);
    Instances dataset2 = genGaussianDataset(centers, sigmas2, pointsPerCluster, seed + 59387, randomize, false);

    for (int i = 0; i < dataset2.numInstances(); i++)
        dataset1.add(dataset2.instance(i));

    return dataset1;
}

From source file:br.fapesp.myutils.MyUtils.java

License:Open Source License

/**
 * Generates a Gaussian data set with K clusters and m dimensions
 * //from   w  w  w.  j a  v  a2 s . c o m
 * @param centers
 *            K x m matrix
 * @param sigmas
 *            K x m matrix
 * @param pointsPerCluster
 *            number of points per cluster
 * @param seed
 *            for the RNG
 * @param randomize
 *            should the order of the instances be randomized?
 * @param supervised
 *            should class label be present? if true, the class is the m+1
 *            attribute
 * 
 * @return
 */
public static Instances genGaussianDataset(double[][] centers, double[][] sigmas, int pointsPerCluster,
        long seed, boolean randomize, boolean supervised) {
    Random r = new Random(seed);

    int K = centers.length; // number of clusters
    int m = centers[0].length; // number of dimensions

    FastVector atts = new FastVector(m);
    for (int i = 0; i < m; i++)
        atts.addElement(new Attribute("at" + i));

    if (supervised) {
        FastVector cls = new FastVector(K);
        for (int i = 0; i < K; i++)
            cls.addElement("Gauss-" + i);
        atts.addElement(new Attribute("Class", cls));
    }

    Instances data;
    if (supervised)
        data = new Instances(K + "-Gaussians-supervised", atts, K * pointsPerCluster);
    else
        data = new Instances(K + "-Gaussians", atts, K * pointsPerCluster);

    if (supervised)
        data.setClassIndex(m);

    Instance ith;

    for (int i = 0; i < K; i++) {
        for (int j = 0; j < pointsPerCluster; j++) {
            if (!supervised)
                ith = new DenseInstance(m);
            else
                ith = new DenseInstance(m + 1);
            ith.setDataset(data);
            for (int k = 0; k < m; k++)
                ith.setValue(k, centers[i][k] + (r.nextGaussian() * sigmas[i][k]));
            if (supervised)
                ith.setValue(m, "Gauss-" + i);
            data.add(ith);
        }
    }

    // run randomization filter if desired
    if (randomize)
        data.randomize(r);

    return data;
}