List of usage examples for weka.core Instances add
@Override public boolean add(Instance instance)
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; }