Example usage for org.apache.mahout.classifier ConfusionMatrix toString

List of usage examples for org.apache.mahout.classifier ConfusionMatrix toString

Introduction

In this page you can find the example usage for org.apache.mahout.classifier ConfusionMatrix toString.

Prototype

@Override
public String toString() 

Source Link

Document

This is overloaded.

Usage

From source file:de.tu_berlin.dima.aim3.naivebayes.classifier.NBayesClassifierPlanAssembler.java

License:Open Source License

public static void main(String... args) throws NumberFormatException, IOException {
    if (args == null)
        args = new String[0];

    String resultData = (args.length > 0 ? args[0] : "file:///home/mkaufmann/datasets/result");

    Map<String, Map<String, Integer>> confusionMatrix = new HashMap<String, Map<String, Integer>>();

    InputStreamReader stream = new InputStreamReader(new FileInputStream(new File(resultData)));
    BufferedReader in = new BufferedReader(stream);

    String line = null;//w  w w  . j a  v a  2s . c o  m
    while ((line = in.readLine()) != null) {
        String[] triple = line.split("::");
        if (triple.length == 3) {
            String correct = triple[0];
            String label = triple[1];
            int count = Integer.parseInt(triple[2]);

            Map<String, Integer> rowMatrix = confusionMatrix.get(correct);
            if (rowMatrix == null) {
                rowMatrix = new HashMap<String, Integer>();
            }

            rowMatrix.put(label, count);
            confusionMatrix.put(correct, rowMatrix);
        }
    }

    ConfusionMatrix matrix = new ConfusionMatrix(confusionMatrix.keySet(), "default");
    for (Map.Entry<String, Map<String, Integer>> correctLabelSet : confusionMatrix.entrySet()) {
        Map<String, Integer> rowMatrix = correctLabelSet.getValue();
        for (Map.Entry<String, Integer> classifiedLabelSet : rowMatrix.entrySet()) {
            matrix.addInstance(correctLabelSet.getKey(), classifiedLabelSet.getKey());
            matrix.putCount(correctLabelSet.getKey(), classifiedLabelSet.getKey(),
                    classifiedLabelSet.getValue());
        }
    }

    System.out.println(matrix.toString());
}