Example usage for weka.core DenseInstance setClassValue

List of usage examples for weka.core DenseInstance setClassValue

Introduction

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

Prototype


@Override
public void setClassValue(double value) 

Source Link

Document

Sets the class value of an instance to the given value (internal floating-point format).

Usage

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);
}