List of usage examples for weka.core DenseInstance setClassValue
@Override public void setClassValue(double value)
From source file:nl.uva.sne.commons.ClusterUtils.java
private static Instances createInstancesWithClasses(String inDir) throws IOException, ParseException, Exception { File dir = new File(inDir); File[] classFolders = dir.listFiles(); List<List<String>> allDocs = new ArrayList<>(); Map<String, List<String>> docs = new HashMap<>(); Set<String> classes = new HashSet<>(); for (File f : classFolders) { if (f.isDirectory()) { List<Term> terms = dir2Terms(f.getAbsolutePath()); classes.add(f.getName());//from www . ja v a 2 s.c om for (Term tv : terms) { Set<String> doc = SemanticUtils.getDocument(tv); allDocs.add(new ArrayList<>(doc)); docs.put(tv.getUID() + "," + f.getName(), new ArrayList<>(doc)); } } else { List<Term> terms = new ArrayList<>(); if (FilenameUtils.getExtension(f.getName()).endsWith("json")) { terms.add(TermFactory.create(new FileReader(f))); } classes.add("NON"); for (Term tv : terms) { Set<String> doc = SemanticUtils.getDocument(tv); allDocs.add(new ArrayList<>(doc)); docs.put(tv.getUID() + "," + "NON", new ArrayList<>(doc)); // docs.put(tv.getUID(), new ArrayList<>(doc)); } } } Set<String> allWords = new HashSet<>(); Map<String, Map<String, Double>> featureVectors = new HashMap<>(); for (String k : docs.keySet()) { List<String> doc = docs.get(k); Map<String, Double> featureVector = new TreeMap<>(); for (String term : doc) { allWords.add(term); if (!featureVector.containsKey(term)) { double score = SemanticUtils.tfIdf(doc, allDocs, term); featureVector.put(term, score); } } featureVectors.put(k, featureVector); } for (String t : featureVectors.keySet()) { Map<String, Double> featureV = featureVectors.get(t); for (String word : allWords) { if (!featureV.containsKey(word)) { featureV.put(word, 0.0); } } // System.err.println(t + " " + featureV.size()); featureVectors.put(t, featureV); } ArrayList<Attribute> attributes = buildAttributes(allWords, classes); Instances data = new Instances("Rel", attributes, docs.size()); data.setClassIndex(data.numAttributes() - 1); for (String t : featureVectors.keySet()) { String[] parts = t.split(","); String id = parts[0]; String theClass = parts[parts.length - 1]; int index = 0; double[] vals = new double[data.numAttributes()]; vals[index] = data.attribute(0).addStringValue(id); index++; Map<String, Double> featureV = featureVectors.get(t); for (String w : featureV.keySet()) { vals[index] = featureV.get(w); index++; } DenseInstance inst = new DenseInstance(1.0, vals); inst.setDataset(data); inst.setClassValue(theClass); data.add(inst); } return data; }
From source file:org.knime.knip.suise.node.boundarymodel.contourdata.WekaContourDataClassifier.java
License:Open Source License
private void addInstance(double[] vec, double weight, double classValue, Instances dataset) { DenseInstance inst = new DenseInstance(weight, vec); inst.insertAttributeAt(inst.numAttributes()); inst.setDataset(dataset);/* w ww . j a v a2 s. c o m*/ inst.setClassValue(classValue); dataset.add(inst); }