コード例 #1
0
ファイル: xmeans.py プロジェクト: Jeff-Tian/pyclustering
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of X-Means algorithm.
        
        @remark Results of clustering can be obtained using corresponding gets methods.
        
        @see get_clusters()
        @see get_centers()
        
        """
        
        if (self.__ccore is True):
            self.__clusters, self.__centers = wrapper.xmeans(self.__pointer_data, self.__centers, self.__kmax, self.__tolerance, self.__criterion);

        else:
            self.__clusters = [];
            while ( len(self.__centers) <= self.__kmax ):
                current_cluster_number = len(self.__centers);
                
                self.__clusters, self.__centers = self.__improve_parameters(self.__centers);
                allocated_centers = self.__improve_structure(self.__clusters, self.__centers);
                
                if (current_cluster_number == len(allocated_centers)):
                #if ( (current_cluster_number == len(allocated_centers)) or (len(allocated_centers) > self.__kmax) ):
                    break;
                else:
                    self.__centers = allocated_centers;
            
            self.__clusters, self.__centers = self.__improve_parameters(self.__centers);
コード例 #2
0
ファイル: xmeans.py プロジェクト: csu-xiao-an/pyclustering
    def process(self):
        """!
        @brief Performs cluster analysis in line with rules of X-Means algorithm.
        
        @remark Results of clustering can be obtained using corresponding gets methods.
        
        @see get_clusters()
        @see get_centers()
        
        """
        
        if self.__ccore is True:
            result = wrapper.xmeans(self.__pointer_data, self.__centers, self.__kmax, self.__tolerance, self.__criterion)
            self.__clusters = result[0]
            self.__centers = result[1]
            self.__total_wce = result[2][0]

        else:
            self.__clusters = []
            while len(self.__centers) <= self.__kmax:
                current_cluster_number = len(self.__centers)
                
                self.__clusters, self.__centers, _ = self.__improve_parameters(self.__centers)
                allocated_centers = self.__improve_structure(self.__clusters, self.__centers)
                
                if current_cluster_number == len(allocated_centers):
                    break
                else:
                    self.__centers = allocated_centers
            
            self.__clusters, self.__centers, self.__total_wce = self.__improve_parameters(self.__centers)
コード例 #3
0
ファイル: xmeans.py プロジェクト: xbouteiller/pyclustering
    def __process_by_ccore(self):
        """!
        @brief Performs cluster analysis using CCORE (C/C++ part of pyclustering library).

        """

        result = wrapper.xmeans(self.__pointer_data, self.__centers, self.__kmax, self.__tolerance, self.__criterion, self.__repeat)
        self.__clusters = result[0]
        self.__centers = result[1]
        self.__total_wce = result[2][0]
コード例 #4
0
    def __process_by_ccore(self):
        """!
        @brief Performs cluster analysis using CCORE (C/C++ part of pyclustering library).

        """

        ccore_metric = metric_wrapper.create_instance(self.__metric)

        result = wrapper.xmeans(self.__pointer_data, self.__centers, self.__kmax, self.__tolerance, self.__criterion,
                                self.__alpha, self.__beta, self.__repeat, self.__random_state,
                                ccore_metric.get_pointer())

        self.__clusters = result[0]
        self.__centers = result[1]
        self.__total_wce = result[2][0]