2017-08-15 85 views
0

在维基百科上,描述了如何根据随机方法初始化kmeans集群位置。pyclustering:初始化kmeans的预期方法

pyclustering这个python集群库中,各种集群都是用高性能的c-core来实现的。这个核心比numpy/sklearn更快,所以我想避免在sklearn/numpy中实现任何东西(否则我现在可能会失去代码的快速感觉)。

但是,kmeans class需要初始群集位置列表才能开始。在pyclustering中初始化这些集群位置的预期方法是什么?

回答

1

存在automatically generated pyclustering documentation其中描述了kmeans算法的API。

例如,你有一个2D-数据,其中两个簇应萃取,然后需要指定初始中心(pyclustering不产生初始中心它们应该由用户提供):

kmeans_instance = kmeans(sample, [ [0.0, 0.1], [2.5, 2.6] ], ccore = True); 

在哪里[0.0,0.1]是第一个簇的初始中心,[2.5,2.6]是第二个簇的初始中心。 'ccore = True'标志用于CCORE库的使用。

执行命令处理:

kmeans_instance.process(); 

获取聚类结果:

clusters = kmeans_instance.get_clusters(); # list of clusters 
centers = kmeans_instance.get_centers(); # list of cluster centers. 

可视化得到的结果:

visualizer = cluster_visualizer(); 
visualizer.append_clusters(clusters, sample); 
visualizer.append_cluster(start_centers, marker = '*', markersize = 20); 
visualizer.append_cluster(centers, marker = '*', markersize = 20); 
visualizer.show(); 

Click here to see example of result visualization

用法examp les可以在:'pyclustering/cluster/example/kmeans_examples.py'

$ ls pyclustering/cluster/examples/ -1 
__init__.py 
agglomerative_examples.py 
birch_examples.py 
clarans_examples.py 
cure_examples.py 
dbscan_examples.py 
dbscan_segmentation.py 
general_examples.py 
hsyncnet_examples.py 
kmeans_examples.py <--- kmeans examples 
kmeans_segmentation.py 
kmedians_examples.py 
kmedoids_examples.py 
optics_examples.py 
rock_examples.py 
somsc_examples.py 
syncnet_examples.py 
syncsom_examples.py 
syncsom_segmentation.py 
xmeans_examples.py