@Override
public void serialize(ROC roc, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
if (roc.isExact()) {
roc.calculateAUC();
roc.calculateAUCPR();
}
jsonGenerator.writeNumberField("thresholdSteps", roc.getThresholdSteps());
jsonGenerator.writeNumberField("countActualPositive", roc.getCountActualPositive());
jsonGenerator.writeNumberField("countActualNegative", roc.getCountActualNegative());
jsonGenerator.writeObjectField("counts", roc.getCounts());
jsonGenerator.writeNumberField("auc", roc.calculateAUC());
jsonGenerator.writeNumberField("auprc", roc.calculateAUCPR());
if (roc.isExact()) {
jsonGenerator.writeObjectField("rocCurve", roc.getRocCurve());
jsonGenerator.writeObjectField("prCurve", roc.getPrecisionRecallCurve());
}
jsonGenerator.writeBooleanField("isExact", roc.isExact());
jsonGenerator.writeNumberField("exampleCount", roc.getExampleCount());
jsonGenerator.writeBooleanField("rocRemoveRedundantPts", roc.isRocRemoveRedundantPts());
}