コード例 #1
0
        /// <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;
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Perform a single training iteration.
 /// </summary>
 public void Iteration()
 {
     _kmeans.Process();
     _clusters = new IMLCluster[_k];
     for (int i = 0; i < _k; i++)
     {
         _clusters[i] = new BasicCluster(_kmeans.GetCluster(i));
     }
 }
コード例 #3
0
        /// <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;
                }
            }
        }