@ThreadLeakLingering(linger = 1000) @Test public void adaptiveLogisticRegressionRoundTrip() throws IOException { AdaptiveLogisticRegression learner = new AdaptiveLogisticRegression(2, 5, new L1()); learner.setInterval(200); train(learner, 400); AdaptiveLogisticRegression olr3 = roundTrip(learner, AdaptiveLogisticRegression.class); double auc1 = learner.auc(); assertTrue(auc1 > 0.85); assertEquals(auc1, learner.auc(), 1.0e-6); assertEquals(auc1, olr3.auc(), 1.0e-6); train(learner, 1000); train(learner, 1000); train(olr3, 1000); assertEquals(learner.auc(), learner.auc(), 0.005); assertEquals(learner.auc(), olr3.auc(), 0.005); double auc2 = learner.auc(); assertTrue(String.format("%.3f > %.3f", auc2, auc1), auc2 > auc1); learner.close(); olr3.close(); }
if (i % 1000 == 0 && adaptiveLogisticRegression.getBest() != null) { System.out.printf("%10d %10.4f %10.8f %.3f\n", i, adaptiveLogisticRegression.auc(), Math.log10(adaptiveLogisticRegression.getBest().getMappedParams()[0]), adaptiveLogisticRegression.getBest().getMappedParams()[1]); assertEquals(1, adaptiveLogisticRegression.auc(), 0.1); adaptiveLogisticRegression.close();