/// <summary> /// Construct the clusters objects. /// </summary> /// <param name="k">The number of clusters to have.</param> /// <param name="observations">The observations.</param> public Clusters(int k, IMLDataSet observations) { _clustersHash = new Dictionary <IMLDataPair, int>(); _clusters = new List <ICollection <IMLDataPair> >(); IList list = new List <IMLDataPair>(); foreach (IMLDataPair pair in observations) { list.Add(pair); } var kmc = new KMeansUtil <IMLDataPair>(k, list); kmc.Process(); for (int i = 0; i < k; i++) { ICollection <IMLDataPair> cluster = kmc.Get(i); _clusters.Add(cluster); foreach (IMLDataPair element in cluster) { _clustersHash[element] = i; } } }
/// <summary> /// Construct the clusters objects. /// </summary> /// <param name="k">The number of clusters to have.</param> /// <param name="observations">The observations.</param> public Clusters(int k, IMLDataSet observations) { _clustersHash = new Dictionary<IMLDataPair, int>(); _clusters = new List<ICollection<IMLDataPair>>(); IList list = new List<IMLDataPair>(); foreach (IMLDataPair pair in observations) { list.Add(pair); } var kmc = new KMeansUtil<IMLDataPair>(k, list); kmc.Process(); for (int i = 0; i < k; i++) { ICollection<IMLDataPair> cluster = kmc.Get(i); _clusters.Add(cluster); foreach (IMLDataPair element in cluster) { _clustersHash[element] = i; } } }