private string FlushResultsToFile(TimeSpan took, PmlEvaluation eval) { var date = DateTime.Now; var filename = date.ToString("yyyyMMddTHHmmss.") + classifier.GetType().Name.ToLower() + ".eval"; if (File.Exists(filename)) { File.Delete(filename); } var m = classifier.Impl.GetType().GetMethod("toString"); var classdesc = m == null ? null : (string)m.Invoke(classifier.Impl, new object[0]); var contents = "Evaluation Took " + took + "ms\n\n"; if (!String.IsNullOrWhiteSpace(classdesc)) { contents += "Classifier:\n==========\n\n" + classdesc + "\n\n"; } contents += eval.ToSummaryString("Summary:\n=======\n\n", true); try { contents += eval.ToClassDetailsString("\n\nClass Details:\n=============\n\n"); } catch {} try { contents += eval.ToMatrixString("\n\nConfusion Matrix:\n================\n\n"); } catch {} File.WriteAllText(filename, contents); return(contents); }
private PmlEvaluation EvaluateImpl(Action <PmlEvaluation> eval, bool quiet) { var start = DateTime.Now; var evaluation = new PmlEvaluation(new Evaluation(runtime.Impl)); eval(evaluation); var description = FlushResultsToFile(DateTime.Now.Subtract(start), evaluation); if (!quiet) { Console.WriteLine("\n" + description); } return(evaluation); }