层次聚类
层次聚类,是一种很直观的算法。顾名思义就是要一层一层地进行聚类,可以从下而上地把小的cluster合并聚集,也可以从上而下地将大的cluster进行分割。似乎一般用得比较多的是从下而上地聚集,因此这里我就只介绍这一种。
所谓从下而上地合并cluster,具体而言,就是每次找到距离最短的两个cluster,然后进行合并成一个大的cluster,直到全部合并为一个cluster。整个过程就是建立一个树结构,类似于下图。
K-means VS 层次聚类?
① K-means这种扁平聚类产出一个聚类结果(都是独立的)
② 层次聚类能够根据你的聚类程度不同,有不同的结果
③ K-means需要指定聚类个数K,层次聚类不用
④ K-means比层次聚类要快一些(通常说来)
⑤ K-means用的多,可以用K- Median
1 你认为层次聚类算法适合Map-Reduce化吗?如果觉得不适合,请讲讲理由,如果觉得适合,请构造相应的Map-Reduce算法
原始的层次聚类算法不适合。
比如需要计算的点有1亿个(10的8次方),那么层次聚类第一次迭代就需要计算1亿乘一亿(即10的16次方)等于一万万亿次,计算量太过庞大。
基于 MapReduce 的基因数据密度层次聚类算法
摘要 :随着生物信息技术的快速发展 ,基因表达数据的规模急剧增长 ,这给传统的基因表达数据聚
类算法带来了严峻的挑战 .基于密度的层次聚类(DHC)能够较好地解决基因表达数据嵌套类问题
且鲁棒性较好 ,但处理海量数据的效率不高 .为此 ,提出了基于 MapReduce 的密度层次聚类算
法 ——— DisDHC .该算法首先进行数据分割 ,在每个子集上利用 DHC 进行聚类获得稀疏化的数据 ;
在此基础上再次进行 DHC 聚类 ;最终产生整体数据的密度中心点 .在酵母数据集 、酵母细胞周期
数据集 、人血清数据集上进行实验 ,结果表明 ,DisDHC 算法在保持 DHC 聚类效果的同时 ,极大地
缩短了聚类时间 .
关键词 :MapReduc