分层聚类的聚类方式,挺适合拿来做教学用例的。<《SPSS 统计与应用》教学讲义>里的这部分内容,讲得比较直白。先让每个对象单独成类,再一点点合并“最亲密”的个体或小类,聚成大类,直到只有一类。嗯,思路简单,逻辑清晰,适合新手搞明白聚类的基本流程。
从实现方式上看,SPSS采用的是凝聚型的聚类方法,也就是你常听到的层次聚类。一开始个体各自为战,慢慢组队,全体抱团。这种方式虽然不一定最优,但胜在直观,适合拿来入门练手,或者用来做可视化。
你要是想自己撸代码试试,不妨看看下面这些链接:有Java实现的,也有基于MATLAB和WEKA的,甚至还有直接聊Web 应用方向的。比如:
- HierarchicalClustering 分层聚类算法 Java 实现,适合后端小伙伴玩
- MATLAB QT 聚类与核心距离,对科研方向比较友好
- 层次凝聚类算法在 Web 挖掘中的应用研究,前端/数据挖掘都能参考
建议你初期先搞清楚亲密度
是怎么算的(比如用欧式距离、余弦相似度这种),再看怎么一步步合并。哦对,别忘了可视化,像dendrogram
(树状图)就挺直观,能一眼看出层次关系。
如果你刚好在做聚类的项目,又不太想从零开始构建算法,可以直接参考这些例子,调调参数,看看效果。