数据挖掘系统聚类—R实现

2023-05-22,

系统聚类法

聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,最后的结果是希望同类之间的差异性尽可能小,不同类之间的差异性尽可能大。不同的类具有能够表达异于其他类的指标,这样针对不同的类,后续就能采取不一样的处理手段。聚类的应用场景的比较多,比如建立客户画像、商品聚类、离群值检验等等;与分类算法不一样,聚类属于非监督学习算法,其算法类型也很多,系统聚类是相对其他较简单的。

一、系统聚类法

1. 系统聚类法思想

系统聚类也称为层次聚类,因为其结果会呈现显著的层次结构,通常分为自底向上和自顶向下,两种方法的原理是相同的,区别在于计算的方向是相反的。

(1)自低向下:又称为合并法,这种方法是先将每个样本分别作为一个独立的类,然后通过距离计算,将距离相近的两个样本合并为一类,其他样本仍然各自为一类,重复上面的过程直至达到设定的聚类数。自顶向下:又称为分解法,与自低向下相反,会将所有样本看出一类,通过各样本间的距离,选出距离最远的两个样本,各自为一个类别,其余样本根据就近原则分配到两个类别中,重复上面的过程直至达到设定的聚类数。

(2)聚类方向明确之后,接下来就是关键问题定义样本点之间的距离。在聚类时常见的距离定义方法有绝对值距离、欧式距离、闵可夫距离、切比雪夫距离等等,最常用的就是欧式距离,如下图所示。

(3)样本点的距离解决之后,就轮到怎么样确定两个类之间的距离,通常确定的方法有最短距离法、最长距离法、中间距离法、类平均法、重心法和离差平方法,如下图所示。

2. 系统聚类法示例

最短距离

最短距离法:将类中的样本间最短距离作为类之间的距离。

最长距离

最长距离法:将类中样本间的最长距离作为类之间的距离。

二、 系统聚类R实现

在R语言中,hclust函数能够实现系统聚类,输入项为距离矩阵(可以由dist函数计算所得),设置method可实现不同算法。

out.hclust=hclust(out.dist,method="complete") #根据距离聚类
#类平均法:average 重心法:centroid
#中间距离法:median 最长距离法:complete 默认
#最短距离法:single 离差平方和法:ward
#密度估计法:density

1. 聚类处理的数据结构

2. R处理程序

#数据输入
dd1=c(2.5,3.0,6.0,6.6,7.2,4.0,4.7,4.5,5.5)
dd2=c(2.1,2.5,2.5,1.5,3.0,6.4,5.6,7.6,6.9)
dd=data.frame(dd1,dd2)
#聚类函数
out.dist=dist(dd,method="euclidean") #样本间距离计算
out.hclust=hclust(out.dist,method="complete") #系统聚类
plot(out.hclust) #系统聚类图

3. 计算结果

plot(out.hclust)                      #系统聚类图
rect.hclust(out.hclust, k=3) #添加聚类分类矩形,如分为3类

out.id = cutree(out.hclust, k=3)      #得到分为3类的数值
out.id
[1] 1 1 2 2 2 3 3 3 3
table(out.id,paste("Name",1:9,""))     # 以矩阵的方式分辨名称对应的类
out.id Name 1  Name 2  Name 3  Name 4  Name 5  Name 6  Name 7   Name 8    Name 9
1 1 1 0 0 0 0 0 0 0
2 0 0 1 1 1 0 0 0 0
3 0 0 0 0 0 1 1 1 1

三、总结

系统聚类法是目前国内外使用比较多的一种聚类方法,其实现方式是:它首先将每个样本单独看成一类,在规定类间距离的条件下,选择距离最小的一对合并成一个新类,并计算新类与其他类之间的距离,再将距离最近的两类合并,这样每次会减少一个类,直到所有的样本合为一类为止。高维聚类分析已成为聚类分析的一个重要研究方向。同时高维数据聚类也是聚类技术的难点。随着技术的进步使得数据收集变得越来越容易,导致数据库规模越来越大、复杂性越来越高,如各种类型的贸易交易数据、Web 文档、基因表达数据等,它们的维度(属性)通常可以达到成百上千维,甚至更高。但是,受“维度效应”的影响,许多在低维数据空间表现良好的聚类方法运用在高维空间上往往无法获得好的聚类效果。高维数据聚类分析是聚类分析中一个非常活跃的领域,同时它也是一个具有挑战性的工作。高维数据聚类分析在市场分析、信息安全、金融、娱乐、反恐等方面都有很广泛的应用。

参考文献

(聚类分析—系统聚类)[https://zhuanlan.zhihu.com/p/267700

数据挖掘系统聚类—R实现的相关教程结束。

《数据挖掘系统聚类—R实现.doc》

下载本文的Word格式文档,以方便收藏与打印。