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()));
 }