使用代表进行聚类(CURE)

时间:2017-12-11 04:23:42

标签: algorithm cluster-analysis data-mining hierarchical-clustering

我需要一个数值示例来演示使用CURE算法进行聚类的工作。
https://www.cs.ucsb.edu/~veronika/MAE/summary_CURE_01guha.pdf

2 个答案:

答案 0 :(得分:1)

pyclustering库有许多聚类算法,包含示例,以及Github上的示例代码。 Here is a link the CURE example

Googling Cure算法示例也提出了相当一点。

希望这有帮助!

答案 1 :(得分:0)

使用pyclustering库,您可以提取有关代表点的信息,并使用相应的方法(链接到CURE pyclustering generated documentation):

# create instance of the algorithm
cure_instance = cure(<algorithm parameters>);

# start processing
cure_instance.process();

# get allocated clusteres
clusters = cure_instance.get_clusters();

# get representative points
representative = cure_instance.get_representors();

此外,您可以修改CURE算法的源代码,以在每个步骤后显示更改,例如,将它们打印到控制台甚至可视化。下面是一个示例,如何修改代码以显示每个步骤聚类(after line 219)的更改,其中星号表示代表点,小点 - 指向自身和大点 - 表示:

# New cluster and updated clusters should relocated in queue
self.__insert_cluster(merged_cluster);
for item in cluster_relocation_requests:
    self.__relocate_cluster(item);
#
# ADD FOLLOWING PEACE OF CODE TO DISPLAY CHANGES ON EACH STEP
#
temp_clusters = [ cure_cluster_unit.indexes for cure_cluster_unit in self.__queue ];
temp_representors = [ cure_cluster_unit.rep for cure_cluster_unit in self.__queue ];
temp_means = [ cure_cluster_unit.mean for cure_cluster_unit in self.__queue ];

visualizer = cluster_visualizer();
visualizer.append_clusters(temp_clusters, self.__pointer_data);

for cluster_index in range(len(temp_clusters)):
    visualizer.append_cluster_attribute(0, cluster_index, temp_representors[cluster_index], '*', 7);
    visualizer.append_cluster_attribute(0, cluster_index, [ temp_means[cluster_index] ], 'o');

visualizer.show();

您将看到一系列图像,如下所示: enter image description here

因此,您可以显示所需的任何信息。

另外我想补充一点,你可以使用算法的C ++实现进行可视化(这也是pyclustering的一部分):https://github.com/annoviko/pyclustering/blob/master/ccore/src/cluster/cure.cpp

相关问题