private double EvaluatePolicy(IList <ClustererDataLoader.ClustererDoc> docs, bool training) { isTraining = 0; EvalUtils.B3Evaluator evaluator = new EvalUtils.B3Evaluator(); foreach (ClustererDataLoader.ClustererDoc doc in docs) { Clusterer.State currentState = new Clusterer.State(doc); while (!currentState.IsComplete()) { currentState.DoBestAction(classifier); } currentState.UpdateEvaluator(evaluator); } isTraining = 1; double score = evaluator.GetF1(); Redwood.Log("scoref.train", string.Format("B3 F1 score on %s: %.4f", training ? "train" : "validate", score)); return(score); }
public virtual double GetF1() { return((mucWeight == 0 ? 0 : mucWeight *mucEvaluator.GetF1()) + (mucWeight == 1 ? 0 : (1 - mucWeight) * b3Evaluator.GetF1())); }