private static void DatasetCsvToFinalCsv(DatasetCsv dataset, StatisticalResultCsv finalResult) { finalResult.Length = dataset.CsLength; finalResult.Degredome = dataset.Degradome; finalResult.Dataset = dataset.Name; finalResult.Transformation = dataset.Transformation; }
private static void PairCsvToFinalCsv(PairwiseComparisonCsv pairCsv, StatisticalResultCsv finalResult) { finalResult.File = pairCsv.File; finalResult.group_count = pairCsv.group_count; finalResult.Oneway = pairCsv.Oneway; finalResult.pair_count = pairCsv.pair_count; finalResult.significant_pairs = pairCsv.significant_pairs; finalResult.significant_rate = pairCsv.significant_rate; }
public static StatisticalResultCsv[] AttachCompactness(AlgorithmCsv algorithm, DatasetCsv dataset) { List <StatisticalResultCsv> final_results = new List <StatisticalResultCsv>(); double best_sr = 0; double min_compact = 0; int min_compact_at = 0; string current_folder = $"{Config.WorkingFolder}\\{algorithm.Name}\\{dataset.Name}\\"; var dataType = FeatureTypeExtension.FromString(dataset.Feature); PairwiseComparisonCsv[] pairwiseResults = CsvContext.ReadFile <PairwiseComparisonCsv>(current_folder + Config.PairwiseComparisonCsv); if (pairwiseResults.Length == 0) { return(OutputResults(final_results, algorithm.Name, dataset.Name)); } best_sr = pairwiseResults[0].significant_rate; min_compact = GetCompactness(current_folder + "\\individuals\\" + pairwiseResults[0].File, dataset); PairwiseComparisonCsv[] best_pairwiseResults = pairwiseResults.Where(c => c.significant_rate == best_sr).ToArray(); for (int i = 0; i < best_pairwiseResults.Length; i++) { //double compact = StatisticalResultCsv finalResult = new StatisticalResultCsv(); finalResult.DataType = dataType.ToString(); finalResult.Method = algorithm.Name; DatasetCsvToFinalCsv(dataset, finalResult); PairCsvToFinalCsv(best_pairwiseResults[i], finalResult); finalResult.Compactness = GetCompactness(current_folder + "\\individuals\\" + best_pairwiseResults[i].File, dataset); if (finalResult.Compactness < min_compact) { min_compact = finalResult.Compactness; min_compact_at = i; } final_results.Add(finalResult); } final_results[min_compact_at].Best = true; for (int i = best_pairwiseResults.Length; i < best_pairwiseResults.Length + 5 && i < pairwiseResults.Length; i++) { StatisticalResultCsv finalResult = new StatisticalResultCsv(); finalResult.DataType = dataType.ToString(); finalResult.Method = algorithm.Name; DatasetCsvToFinalCsv(dataset, finalResult); PairCsvToFinalCsv(pairwiseResults[i], finalResult); finalResult.Compactness = GetCompactness(current_folder + "\\individuals\\" + pairwiseResults[i].File, dataset); final_results.Add(finalResult); } return(OutputResults(final_results, algorithm.Name, dataset.Name)); }