我在mahout中经历了K-means算法,在调试时,我注意到在创建第一个集群时,它会执行以下代码:
ClusteringPolicy policy = new KMeansClusteringPolicy(convergenceDelta);
ClusterClassifier prior = new ClusterClassifier(clusters, policy);
prior.writeToSeqFiles(priorClustersPath);
我正在阅读这些课程的描述,这对我来说并不清楚......
我想知道这些集群分类器和策略的含义是什么? 它与层次聚类,基于质心的聚类,基于分布有关 聚类等?
因为我不知道在使用K-means mahout实现时使用此集群分类器和策略的好处或原因是什么。
答案 0 :(得分:0)
该实现与k-means和类似算法的其他变体共享代码,例如Canopy预聚类和GMM。
这些类只编码这些算法之间的差异。
Mahout不是研究k-means算法的好地方,实现起来相当混乱。它也很慢。因为真的很慢。大多数情况下,单个CPU实现将完全击败Mahout以适应内存。甚至可能在一台机器的磁盘上。因为所有map-reduce开销。