Exemple #1
0
        private void InitializeClustersByRegions(int clusterNumber, Region[] regions)
        {
            if (clusterNumber >= regions.Length)
            {
                throw new ArgumentException("clusterNumber");
            }

            clusterCenters = new IClusteringCenter <double> [clusterNumber];

            for (int i = 0; i < clusterNumber; i++)
            {
                clusterCenters[i] = new ClusteringCenter(
                    signs.Select(sign => sign.Calculate(regions[i])).ToArray(),
                    clusterNumber: i);

                regions[i].IsCenter = true;
            }
        }
Exemple #2
0
        private void InitializeClusterCenters(int clusterNumber, int signsLength, Region[] regions)
        {
            clusterCenters = new IClusteringCenter <double> [clusterNumber];

            var startVect = startSignVectorGenerator.GenerateVectors(clusterNumber, signs, regions);

            for (int i = 0; i < clusterNumber; i++)
            {
                if (i >= startVect.Count)
                {
                    clusterCenters[i] = new ClusteringCenter(
                        startSignVectorGenerator.GenerateVector(signsLength),
                        clusterNumber: i);
                }
                else
                {
                    clusterCenters[i] = new ClusteringCenter(
                        startVect[i],
                        clusterNumber: i);
                }
            }
        }