private async Task Run() { var results = Clustering.Cluster.RunIndividual(fixedKAlgorithmComboBox.SelectedAlgorithm, myDatasetComboBox.SelectedDataset, myKSelector.K, true); var individualResults = results.Where(c => c.group_count == myKSelector.K).Where(c => c.significant_rate > results.First().significant_rate - 0.05).ToArray(); if (individualResults.Length == 0) { MessageBox.Show("Failed to find any clustering that meets the criterion"); } if (individualResults.Length == 1) { Report.Run(individualResults[0]); return; } var ensembleRusults = CSEnsemble.Run(GetEnsembleFolderName(), "HE", myKSelector.K, 5, individualResults.ToArray()); List <StatisticalResultCsv> all = new List <StatisticalResultCsv>(); all.AddRange(individualResults); all.AddRange(ensembleRusults); all = all.OrderBy(c => c.significant_rate).ThenBy(c => c.Compactness).ToList(); Report.Run(all.First()); }
private async Task EnsembleTask() { List <StatisticalResultCsv> selectedMembers = new List <StatisticalResultCsv>(); for (int i = 0; i < candidateDataGridView.SelectedRows.Count; i++) { StatisticalResultCsv item = (StatisticalResultCsv)candidateDataGridView.SelectedRows[i].DataBoundItem; selectedMembers.Add(item); } int keep = 0; int.TryParse(keepNumericUpDown.Text, out keep); NameAlias na = (NameAlias)ensembleMethodcomboBox.SelectedItem; CSEnsemble.Run(ensembleNameTextBox.Text, na.Alias, keSelector.K, keep, selectedMembers); }