我需要一个数值示例来演示使用CURE算法进行聚类的工作。
https://www.cs.ucsb.edu/~veronika/MAE/summary_CURE_01guha.pdf
答案 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();
因此,您可以显示所需的任何信息。
另外我想补充一点,你可以使用算法的C ++实现进行可视化(这也是pyclustering的一部分):https://github.com/annoviko/pyclustering/blob/master/ccore/src/cluster/cure.cpp