/// <summary> /// Khởi tạo cho thuật toán, dùng khi xây dựng cluster từ tập mẫu /// </summary> /// <param name="numCluster">Số cluster muốn tạo</param> /// <param name="samples">Các vector mẫu</param> /// <param name="distType">Loại khoảng cách</param> public Clustering(int numCluster, double[][] samples, DistanceType distType) { SampleData = new SampleSet(samples, distType); Clusters = new Cluster[numCluster]; for (int i = 0; i < numCluster; i++) { Clusters[i] = new Cluster(samples[0].Length); } HasClusterChanged = true; }
/// <summary> /// Đọc thông tin các cluster từ file /// </summary> /// <param name="fileName">Tên file đích</param> private void LoadClusters(string fileName) { StreamReader reader = new StreamReader(fileName); string buffer = null; buffer = reader.ReadLine(); Clusters = new Cluster[Int32.Parse(buffer)]; for (int i = 0; i < Clusters.Length; i++) { Clusters[i] = new Cluster(); buffer = reader.ReadLine(); Clusters[i].NumSample = 0; buffer = reader.ReadLine(); string[] parts = buffer.Split(' '); Clusters[i].MeanSample = new double[parts.Length]; for (int j = 0; j < parts.Length; j++) { Clusters[i].MeanSample[j] = Double.Parse(parts[j]); } } reader.Close(); }