@Test
public void crossValidatedAuc() throws IOException {
RandomUtils.useTestSeed();
Random gen = RandomUtils.getRandom();
Matrix data = readCsv("cancer.csv");
CrossFoldLearner lr = new CrossFoldLearner(5, 2, 10, new L1())
.stepOffset(10)
.decayExponent(0.7)
.lambda(1 * 1.0e-3)
.learningRate(5);
int k = 0;
int[] ordering = permute(gen, data.numRows());
for (int epoch = 0; epoch < 100; epoch++) {
for (int row : ordering) {
lr.train(row, (int) data.get(row, 9), data.viewRow(row));
System.out.printf("%d,%d,%.3f\n", epoch, k++, lr.auc());
}
assertEquals(1, lr.auc(), 0.2);
}
assertEquals(1, lr.auc(), 0.1);
}