机器学习之聚类算法(层次聚类)
来源:互联网 发布:万能搞笑证件制作软件 编辑:程序博客网 时间:2024/06/06 20:00
层次聚类也叫连通聚类方法,有两个基本方法:自顶而下和自底而上。自顶而将所有样本看做是同一簇,然后进行分裂。自底而上将初所有样本看做不同的簇,然后进行凝聚。这种聚类的中心思想是:离观测点较近的点相比离观测点较远的点更可能是一类。
这种方法首先会生成下面的树
分成几类需要通过对上面的树状图进行剪枝来决定。例如需要分成两类,则选择一条水平直线刚好和树相交两次,从而化为左右两棵子树。
不过上面的方法过于简单,只能做分裂或者只能做凝聚,因此结果是不可逆。例如,前期将簇A中样本a,分裂到簇B中后,a再也不能回到簇A中。改进算法时,可以先将邻近的样本点划分到微簇(micoclusters)中,然后对微簇实现K-means算法。
层次聚类算法如下(参考):
BIRCH
- BIRCH算法考虑I/O开销。
- 一次扫描能够产生一个基本聚类,多次扫描能够改善聚类结果。
- 它是一个增量的聚类方法,对于数据的聚类决策是基于已经处理过的数据点,而不是全部样本空间,因此能够提高计算速度。
- 需要使用半径或者直接控制聚类的边界。
CF和CF树
BIRCH引入了CF(cluster feature)和CF树概念。
CF
CF树中每个节点由CF组成,一个CF是一个三元组(N,LS,SS),代表了簇的所有信息(N类中结点数目,LS结点线性和,SS结点线性平方和)。
CF具有迭加特性:
一个簇使用一个CF表示,一个样本点加入到此簇中后,关于此样本的信息就被丢弃掉,从而达到对数据的压缩目的。
在对簇进行分析时需要以下信息:
簇中心:
簇半径:
簇直径:
簇间距离:
上面看到
簇直径:
簇间距离:
CF树
CF树类似B-树,里面包括三种数据结构:内部结点、叶结点、簇。并由参数L、B、T控制(L控制叶结点数目,B内部结点数目,T控制簇半径),同时一个内部结点下面一层是叶结点的话,这些叶结点使用一个双向链表管理。
树的建立实际上是一个递归过程。
首先考虑扫描的第一个样本x时,新建一个内部结点、一个叶结点。建立一个簇将此样本x放入其中。此时,我们可以认为有了一棵CF树了。
然后考虑为这棵CF树添加新样本x时,不失一般性,我们可以认为此时的树很大或者很小。
- 首先将这个x封装成一个CF,记为
CFn 。 - 比较
CFn 和根结点的所有孩子的CF,选择一个离它最近的孩子,利用上面D(A,B) - 依次往下搜索孩子结点,直到到达叶结点。检查叶结点代表的簇是否能够吸收此新样本,判定条件是变化后的簇的半径是否超过T。
- 若能够吸收,则需要更新叶结点的CF(同时递归更新结点的父结点)
- 若不能够吸收,则需要将此叶结点代表的簇进行分裂。分裂办法是:选择此簇距离最远的两个样本作为种子,然后将根据离这两个种子最近来分割其他样本。 分裂可能会导致叶结点的数目刚好超过L,因此需要递归分裂结点的父结点。若根结点发生了分裂,则树的高度需要增加1.
从上面可以看出,一次扫描就能建立一个CF树,且计算量小,占用存储空间也小。能够识别噪声数据(包含样本少的簇)。同时这样的B-树的查找速度也很快。
不过,树的结构依赖于扫描顺序。同样的样本数据,不同的扫描顺序得到的树的结构不一样。同时样本的分布必须是球状的,且对高纬度数据处理不好。
ROCK (RObust Clustering using linKs)
这是一种凝聚方法的代表。引入了四个概念:
邻居
两个对象之间的相似度超过阈值
链接
两个对象共同邻居数据
目标函数
为了达到最小簇之间的链接,最大簇内的链接
相似性度量
TBD
- 机器学习之聚类算法(层次聚类)
- 机器学习算法-层次聚类AGNES
- 机器学习之层次聚类
- 机器学习(层次聚类)
- 【机器学习】聚类算法:层次聚类
- 机器学习之层次聚类及代码示例
- 机器学习算法(六)K-Means聚类、层次聚类、密度聚类、谱聚类
- 【机器学习】聚类算法:层次聚类、K-means聚类
- 机器学习总结(十):常用聚类算法(Kmeans、密度聚类、层次聚类)及常见问题
- 机器学习之聚类算法(CANOPY)
- 机器学习之聚类算法
- 机器学习之聚类算法
- 聚类算法之层次聚类
- 聚类分析之层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 获得主窗口句柄AfxGetApp()->m_pMainWnd
- 用gitUI 提交 github
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 全国poi数据调用代码
- C# 生成和读取Xml文档
- 机器学习之聚类算法(层次聚类)
- POJ3320 Jessica's Reading Problem 尺取法
- mysql导出数据详解
- URAL 1156 Two Rounds (DFS二分染色 + DFS枚举 + 剪枝)
- 网络编程实践陈硕笔记一
- [PAT (Advanced Level) ]1081. Rational Sum 解题文档
- 第七周项目3负数把正数赶出队列
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- Android动画之二:View Animation