package mia.classifier.ch15; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import org.apache.mahout.classifier.evaluation.Auc; import org.apache.mahout.math.stats.GlobalOnlineAuc; import org.apache.mahout.math.stats.OnlineAuc; public class AucExample { public static void main(String[] args) throws IOException { String inputFile = args[1]; Auc x1 = new Auc(); OnlineAuc x2 = new GlobalOnlineAuc(); BufferedReader in = new BufferedReader(new FileReader(inputFile)); int lineCount = 0; String line = in.readLine(); while (line != null) { lineCount++; String[] pieces = line.split(","); double score = Double.parseDouble(pieces[0]); int target = Integer.parseInt(pieces[1]); x1.add(target, score); x2.addSample(target, score); if (lineCount%500 == 0) { System.out.printf("%10d\t%10.3f\t%10d\t%.3f\n", lineCount, score, target, x2.auc()); } line = in.readLine(); } System.out.printf("%d lines read\n", lineCount); System.out.printf("%10.2f = batch estimate\n", x1.auc()); System.out.printf("%10.2f = on-line estimate\n", x2.auc()); } }