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))
Example #2
0
    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 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 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))
Example #7
0
    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