def templateRandomCenterInitializer(self, data, amount): centers = random_center_initializer(data, amount).initialize() self.assertEqual(amount, len(centers)) for center in centers: self.assertEqual(len(data[0]), len(center))
def templateMaxAllocatedClusters(ccore_flag, amount_clusters, size_cluster, offset, kinitial, kmax): input_data = [] for index in range(amount_clusters): for _ in range(size_cluster): input_data.append([ random.random() * index * offset, random.random() * index * offset ]) initial_centers = random_center_initializer(input_data, kinitial).initialize() xmeans_instance = xmeans(input_data, initial_centers, kmax, 0.025, splitting_type.BAYESIAN_INFORMATION_CRITERION, ccore_flag) xmeans_instance.process() clusters = xmeans_instance.get_clusters() centers = xmeans_instance.get_centers() if len(clusters) != len(centers): print(input_data) print(initial_centers) assertion.ge(kmax, len(clusters)) assertion.ge(kmax, len(centers)) assertion.eq(len(clusters), len(centers))
def random_state(ccore_flag, kinitial, kmax, random_state): data = read_sample(SIMPLE_SAMPLES.SAMPLE_SIMPLE5) initial_centers = random_center_initializer(data, kinitial, random_state=random_state).initialize() xmeans_instance1 = xmeans(data, initial_centers, kmax, ccore=ccore_flag, random_state=random_state).process() xmeans_instance2 = xmeans(data, initial_centers, kmax, ccore=ccore_flag, random_state=random_state).process() assertion.eq(xmeans_instance1.get_total_wce(), xmeans_instance2.get_total_wce()) assertion.eq(xmeans_instance1.get_centers(), xmeans_instance2.get_centers()) assertion.eq(xmeans_instance1.get_clusters(), xmeans_instance2.get_clusters())
def templateMaxAllocatedClusters(ccore_flag, amount_clusters, size_cluster, offset, kinitial, kmax): input_data = []; for index in range(amount_clusters): input_data.append([random.random() * index * offset, random.random() * index * offset]); initial_centers = random_center_initializer(input_data, kinitial).initialize(); xmeans_instance = xmeans(input_data, initial_centers, kmax, 0.025, splitting_type.BAYESIAN_INFORMATION_CRITERION, ccore_flag); xmeans_instance.process(); clusters = xmeans_instance.get_clusters(); centers = xmeans_instance.get_centers(); assert kmax >= len(clusters); assert kmax >= len(centers); assert len(clusters) == len(centers);
def templateMaxAllocatedClusters(ccore_flag, amount_clusters, size_cluster, offset, kinitial, kmax): input_data = [] for index in range(amount_clusters): for _ in range(size_cluster): input_data.append([random.random() * index * offset, random.random() * index * offset]) initial_centers = random_center_initializer(input_data, kinitial).initialize() xmeans_instance = xmeans(input_data, initial_centers, kmax, 0.025, splitting_type.BAYESIAN_INFORMATION_CRITERION, ccore_flag) xmeans_instance.process() clusters = xmeans_instance.get_clusters() centers = xmeans_instance.get_centers() if len(clusters) != len(centers): print(input_data) print(initial_centers) assertion.ge(kmax, len(clusters)) assertion.ge(kmax, len(centers)) assertion.eq(len(clusters), len(centers))
def __create_pyclustering_model(self, model_name, model_instance, k_val): if model_name == "K-Medoids": model = model_instance(self.__scaled, [i for i in self.__get_unique_random_indexes( k_val)]) elif model_name == "Somsc" or model_name == "Cure": model = model_instance(self.__scaled, k_val) elif model_name == "K-Means" or model_name == "Fuzzy C-means": initial_centers = kmeans_plusplus_initializer(self.__scaled, k_val).initialize() model = model_instance(self.__scaled, initial_centers) else: # Create instance of K-Means algorithm with prepared centers. initial_centers = random_center_initializer(self.__scaled, k_val).initialize() model = model_instance(self.__scaled, initial_centers) return model