@Override public double getLoss( List<? extends AbstractInstance> crossValSet, PredictiveModel predictiveModel) { Auc auc = new Auc(); for (AbstractInstance instance : crossValSet) { auc.add( (Double) instance.getClassification() == 1.0 ? 1 : 0, predictiveModel.getProbability(instance.getAttributes(), 1.0)); } return 1 - auc.auc(); }
private static HashMap<String, ClicksAndImps> uniqueBrowserDataPredicted( PredictiveModel predictiveModel, List<Instance> instances) { HashMap<String, ClicksAndImps> uniqueBrowsers = new HashMap<>(); for (Instance instance : instances) { String browser = (String) instance.getAttributes().get("an_browser"); double clickProb = Utils.correctProbability( .99, predictiveModel.getProbability(instance.getAttributes(), 1.0)); if (browser != null) { int count = 0; if (!uniqueBrowsers.containsKey(browser)) { uniqueBrowsers.put(browser, new ClicksAndImps()); } uniqueBrowsers.get(browser).imps++; uniqueBrowsers.get(browser).clicks += clickProb; } } for (String key : uniqueBrowsers.keySet()) { uniqueBrowsers.get(key).setCtr(); } return uniqueBrowsers; }