public static DataTableTypeExtended <classificationReportExpanded> MakeOverviewTable(this classificationReportCollection reportCollection, classificationReportDataComplexContext context, String name = "", String description = "") { DataTableTypeExtended <classificationReportExpanded> table = new DataTableTypeExtended <classificationReportExpanded>("overview_" + reportCollection.name, "Aggregate report for experiments ran [" + DateTime.Now.ToShortDateString() + "]"); if (name != "") { table.SetAdditionalInfoEntry("Group name", name); } if (description != "") { table.SetAdditionalInfoEntry("Group desc", description); } table.SetDescription(reportCollection.description); table.SetAdditionalInfoEntry("Path", reportCollection.rootPath, "Path of the collection"); table.SetAdditionalInfoEntry("Subcollections", reportCollection.Children.Count, "Number of sub collections"); foreach (var rep in reportCollection) { table.AddRow(rep); } context.overview_tables.Add(table); return(table); //table.GetReportAndSave(folder, imbACE.Core.appManager.AppInfo); }
/// <summary> /// Generates the final reports and read me files /// </summary> public void CloseExperiment(ILogBuilder logger, long startOfLog) { if (!testSummaries.Any()) { logger.log("No experiment procedures performes"); return; } DataTableTypeExtended <classificationReport> summaryTable = new DataTableTypeExtended <classificationReport>("Test results", "k-fold cross valudation results"); classificationReport sumRow = new classificationReport(runName); sumRow.Comment = runName + ", " + description; // classificationEvalMetricSet metric = new classificationEvalMetricSet("Total", truthTable.labels_without_unknown); foreach (classificationReport s in testSummaries) { summaryTable.AddRow(s); //metric = metric + s; if (sumRow.Classifier.isNullOrEmpty()) { sumRow.Classifier = s.Classifier; } sumRow.AddValues(s); } sumRow.DivideValues(testSummaries.Count); sumRow.SetReportDataFields(crossValidation, this); summaryTable.SetDescription(description); summaryTable.SetAdditionalInfoEntry("RunName", runName); summaryTable.SetAdditionalInfoEntry("Description", description); summaryTable.SetAdditionalInfoEntry("Averaging", averagingMethod.ToString()); summaryTable.AddRow(sumRow); summaryTable.GetReportAndSave(notes.folder, signature); finalReport = sumRow; //sumRow.ReportToLog(logger); sumRow.ReportToLog(notes); objectSerialization.saveObjectToXML(sumRow, notes.folder.pathFor("results.xml", imbSCI.Data.enums.getWritableFileMode.overwrite, "Experiment results", true)); logger.log("Experiment completed"); notes.SaveNote("note"); String logPrintout = logger.GetContent(startOfLog); String p = notes.folder.pathFor("log.txt", imbSCI.Data.enums.getWritableFileMode.overwrite, "Log printout during experiment execution"); File.WriteAllText(p, logPrintout); experimentRootFolder.generateReadmeFiles(signature); }