private void LoadFile() { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "CSV files (*.csv)|*.csv|TXT files (*.txt)|*.txt"; if (dlg.ShowDialog() == true) { clusterData = new ClusterData(); ClusterDataReader dr = ClusterDataReaderFactory.GetClusterDataReader(dlg.FileName, clusterData); if (dr == null) { WPFMessageBox.MsgError("Hiba történt a file betöltése során!"); return; } TextBlockFileName.Text = dlg.FileName; GridAllStatistics.DataContext = clusterData; GridXStatistics.DataContext = clusterData; GridYStatistics.DataContext = clusterData; clusterData.NormalizePoints(); PointChart.Data = clusterData; PointChart.Draw(); } }
private void ButtonClustering_Click(object sender, RoutedEventArgs e) { TextBoxLog.Clear(); try { AlgorithmKMeans alg = new AlgorithmKMeans(clusterData, int.Parse(TextBoxNumberOfClusters.Text)); alg.DistanceFunction = GetDistanceFunction(); alg.MaxIterations = int.Parse(TextBoxMaximumIterations.Text); alg.Iteration += Alg_Iteration; alg.Run(); PointChart.Data = clusterData; PointChart.Draw(); DataGridClusterStats.ItemsSource = clusterData.GetClusterStatistics(); } catch (NullReferenceException) { WPFMessageBox.MsgError("Empty dataset, please load a datafile."); } catch (InvalidOperationException) { WPFMessageBox.MsgError("An empty cluster created. Please run algorithm once more. The value of K is too big?"); } catch (Exception ex) { WPFMessageBox.MsgError("An error occured!", ex); } }