private double trainingStats(EvalParameters evalParams) { int numCorrect = 0; for (int ei = 0; ei < numUniqueEvents; ei++) { for (int ni = 0; ni < this.numTimesEventsSeen[ei]; ni++) { double[] modelDistribution = new double[numOutcomes]; if (values != null) PerceptronModel.eval(contexts[ei], values[ei], modelDistribution, evalParams,false); else PerceptronModel.eval(contexts[ei], null, modelDistribution, evalParams, false); int max = maxIndex(modelDistribution); if (max == outcomeList[ei]) numCorrect++; } } double trainingAccuracy = (double) numCorrect / numEvents; display("Stats: (" + numCorrect + "/" + numEvents + ") " + trainingAccuracy + "\n"); return trainingAccuracy; }
PerceptronModel.eval(contexts[ei], null, modelDistribution, evalParams, false); int maxOutcome = maxIndex(modelDistribution);