if (!showAuc && !showConfusion && !showScores) {
showAuc = true;
showConfusion = true;
}
Auc collector = new Auc();
LogisticModelParameters lmp = LogisticModelParameters.loadFrom(new File(modelFile));
CsvRecordFactory csv = lmp.getCsvRecordFactory();
OnlineLogisticRegression lr = lmp.createRegression();
BufferedReader in = TrainLogistic.open(inputFile);
String line = in.readLine();
csv.firstLine(line);
line = in.readLine();
if (showScores) {
output.printf(Locale.ENGLISH, "\"%s\",\"%s\",\"%s\"\n", "target", "model-output", "log-likelihood");
}
while (line != null) {
Vector v = new SequentialAccessSparseVector(lmp.getNumFeatures());
int target = csv.processLine(line, v);
double score = lr.classifyScalar(v);
if (showScores) {
output.printf(Locale.ENGLISH, "%d,%.3f,%.6f\n", target, score, lr.logLikelihood(target, v));
}
collector.add(target, score);
line = in.readLine();
}
if (showAuc) {
output.printf(Locale.ENGLISH, "AUC = %.2f\n", collector.auc());
}
if (showConfusion) {
Matrix m = collector.confusion();
output.printf(Locale.ENGLISH, "confusion: [[%.1f, %.1f], [%.1f, %.1f]]\n",
m.get(0, 0), m.get(1, 0), m.get(0, 1), m.get(1, 1));
m = collector.entropy();
output.printf(Locale.ENGLISH, "entropy: [[%.1f, %.1f], [%.1f, %.1f]]\n",
m.get(0, 0), m.get(1, 0), m.get(0, 1), m.get(1, 1));
}
}
}