124125126127128129130131132133134
@Override public double nextDouble() { double x; if (gen.nextDouble() < 0.5) { x = uniform.nextDouble(); } else { x = normal.nextDouble(); } return x; }
110111112113114115116117118119120
93949596979899100101102103
248249250251252253254255256257258
5354555657585960616263
} double[] prob = new double[totalItems]; Uniform u = new Uniform(gen); for (int j = 0; j < totalItems; j++) { prob[j] = u.nextDouble(); } Arrays.sort(prob); for (int j = 0; j < totalItems; j++) { prob[j] = 1 - prob[j]; }
8283848586878889909192
regret += prob[j] - prob[k]; } for (int j = 0; j < pageSize; j++) { int k = page.get(j); int reward = u.nextDouble() < prob[k] ? 1 : 0; bandit.get(m).train(k, reward); } } precision /= keyItems * 50.0; regret /= 50;