聚类算法(二)--层次聚类法
来源:互联网 发布:宁波贸易软件定制 编辑:程序博客网 时间:2024/06/08 14:26
本文主要介绍层次聚类法的基本原理、距离计算方法、算法的优缺点,以及R语言实战。
一、概述
层次聚类(Hierarchical Clustering)试图在不同层次上对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略和“自顶向下”的分裂策略。分裂方法一个很大的问题是如何把一个大簇分成几个较小的簇。N个对象的集合可以划分成两个互斥的
AGNES(AGglomerative NESting)是一种采用自底向上聚合的层次聚类算法。其原理为:开始将每个样本看作一个初始聚类簇,然后将距离最近的两类合并成一个新类,计算新类与其他类的距离;重复进行最近两个类的合并,直至所有的样本都聚成一个类。
二、距离计算
从上述算法原理中可以看出算法的关键在于如何计算聚类簇之间的距离。给定聚类簇
其中,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,平均距离由两个簇的所有样本共同决定。当簇类间距离由最小距离、最大距离和平均距离计算时,AGNES算法被相应的称为“单链接”、“全链接”和“均链接”算法。
除此之外,还有中间距离法、重心法、离差平方和法(Ward方法)等距
离计算方法,在此不一一展开。
三、优缺点
1.优点
- 可以通过设置不同的相关参数值,得到不同粒度上的多层次聚类结构;
- 不需要事先设定好类的个数,常常可以用作其他聚类算法的前期探索。
2.缺点
- 计算量比较大,因为要每次都要计算多个cluster内所有数据点的两两距离;
- 层次聚类过程最明显的特点就是不可逆性,由于对象在合并或分裂之后,下一次聚类会在前一次聚类基础之上继续进行合并或分裂,也就是说,一旦聚类结果形成,想要再重新合并来优化聚类的性能是不可能的;
- 聚类结果过度依赖于建模过程中距离计算方法的选择,也就是说,不同的距离计算方法会造成结果的极大差异性,往往需要多次试探,选择最优结果。
四、实例
1.R语言函数介绍
在R语言中,
其中d是由“dist”构成的距离结构,method是系统聚类的方法,缺省值是最长距离法,其参数有:
- single–最短距离法
- complete–最长距离法
- median–中间距离法
- mcquitty–Mcquitty相似法
- average–类平均法
- centroid–重心法
其中x是由hclust()函数生成的对象,hang是表明谱系图中各类所在的位置,当hang取负值时,谱系图中的类从底部画起。
其中tree是由hclust生成的结构,k是类的个数。
2.R语言实战
本文采用iris数据集进行聚类,由于层次聚类法用R语言实现比较简单,直接上代码。
#生成距离矩阵d <- dist(iris[, 1:4])#建模,这里采用中间距离法hc <- hclust(d, method = "median")#可视化聚类结果plot(hc)rect.hclust(hc, k=3)#将聚类结果与源数据集进行比较result <- cutree(hc, k=3) #用来将聚类结果读取出来table(result, iris$Species)
从聚类结果可以看出,结果基本与原种属一致。如果在没有样本标注的情况下,可以以聚类结果为参考,进行后续的分类。
参考资料:
【1】周志华.机器学习[M].北京:清华大学出版社,2016.
【2】统计建模与R软件,ISBN:9787302143666,作者:薛毅
【3】R语言的三种聚类方法
【4】聚类分析-R语言
【5】层次聚类的介绍
- 聚类算法(二)--层次聚类法
- 层次聚类算法(二)
- 层次聚类(二)
- 学习笔记二、调用聚类算法包实现层次
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 层次聚类算法
- 聚类分析(四)层次聚类算法
- 层次凝聚聚类算法(HAC)
- 层次聚类算法(一)
- 层次聚类算法(三)
- 层次算法聚类(四)
- 微信小程序开发分享
- javascript中函数boolean返回值的问题
- 打印等腰三角形
- IDEA修炼之spring boot开发dubbo服务(zk windows 单机版)
- 黑客入门完整版教程
- 聚类算法(二)--层次聚类法
- 关于win10 64位系统下vs2013与python2.7环境下caffe的配置工作入门工作总结
- Bootstrap学习笔记 12
- 【Scikit-Learn 中文文档】无监督降维
- 激活函数的理解
- 希尔伯特空间、拓扑空间概念理解
- Unity引用自己编译的动态dll遇到的问题
- JAVA关键字之 switch
- 商品货架管理