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