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; } }
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); } } }