聚类分析原理及R语言实现过程

聚类分析定义与作用:

是把分类对象按照一定规则分成若干类,这些类不是事先设定的,而是根据数据的特征确定的。在同一类中这些对象在某种意义上趋向于彼此相似,而在不同类中对象趋向于彼此不相似。在经济、管理、地质勘探、天气预报、生物分类、考古学、医学、心理学以及制定国家标准和区域标准等许多方面应用十分广泛,是国内外较为流行的多变量统计分析方法之一,在机器学习中扮演重要角色。

聚类分析的类型

是实际问题中,如根据各省主要的经济指标,将全国各省区分成为几个区域等。这个主要的经济指标是我们用来分类的依据。称为指标(变量),用X1、X2 … Xp表示,p是变量的个数。在聚类分析中,基本的思想是认为所研究的样品或者多个观测指标(变量)之间存在着程度不同的相似性(亲疏关系)。根据这些相识程度,把样品划分成一个由小到大的分类系统,最后画出一张聚类图表示样品之间的亲疏关系。根据分类对象的不同,可将聚类分析分为两类,一是对分类处理,叫Q型;另一种是对变量处理,叫R型。

聚类统计量

聚类分析的基本原则是将有较大相似性的对象归为同一类,可进行聚类的统计量有距离和相似系数。

聚类分析的方法:

系统聚类法、快速聚类法、模糊聚类法。

系统聚类

常用的有如下六种:

1、最短距离法;2、最长距离法;3、类平均法;4、重心法;5、中间距离法;6、离差平方和法

快速聚类

常见的有K-means聚类。

R语言实现系统聚类和K-means聚类过程详解

系统聚类R语言教程

第一步:计算距离

在R语言进行系统聚类时,先计算样本之间的距离,计算之前先对样品进行标准变换。用scale()函数。

R语言各种距离的计算用dist()函数来实现。具体用法为:

dist(x , method = " euclidean " , diag = FALSE, upper = FALSE, p = 2)

x:为数据矩阵或者数据框。

method:为计算方法,包括"euclidean"欧式距离," maximum"切比雪夫距离," manhattan"绝对值距离,"Canberra"兰氏距离," minkowski" 闵可夫斯基距离," binary" 定型变量的距离。

diag是逻辑变量,当diag = TRUE时,给出对角线上的距离。

upper是逻辑变量,当upper = TRUE时,给出上三角矩阵的值(缺省值仅给出下三角矩阵的值)。

p:为minkowski距离的幂次

第二步:系统聚类

在R语言中用hclust()函数进行系统聚类。hclust具体用法为:

hclust(dist , method)

dist:为第一步计算出来的距离

method:为系统聚类方法,有"single"最短距离法,"complete"最长距离法,"median"中间距离法,"mcquitty" Mcquitty相似法,"average"类平均法,"centroid"重心法,"ward" 离差平方和法

第三步:画出聚类图

R语言中用plot()函数画出聚类图,具体用法为:

plot(x, hang = 0.1, axes = TRUE , main = "Cluster Dendrogram", sub = NULL, xlab = NULL, ylab = "Height",...)

x:第二步中hclust得出的对象

hang:表明谱系图中各类所在的位置,当hang取负值时,谱系图中的类从底部画起

main:给聚类图添加标题

sub:给聚类图添加子标题

xlab:为x轴添加说明

ylab:为y轴添加说明

第四步:画出分类矩形框

最后一步用rect.hclust(x, k = n) 函数画出分类矩形框。其中x为第二步hclust得出的对象,K为要分的类数。

例1

为研究我国31个省、市、自治区2007年的城镇居民生活消费的规律,根据调查资料作区域消费类型划分。原始数据如下:

数据来源—www.stats.gov.cn(中华人民共和国国家统计局)

采用欧式距离,分别用最短距离法、最长距离法、类平均法、中间距离法、重心法和ward法得出系统聚类图。

可以看出不同距离方法的分类结果有所差异,但大体的结果是一致的, 北京、上海、浙江、天津、广东消费水平和其他省市自治区有较明显的区别,符合实际情况。

Kmeans聚类R语言教程

步骤:

第一步:将所有样品分成K个初始类。

第二步:通过欧式距离将某个样品划入离中心最近的类中,并对获得样品和失去样品的类重新计算中心坐标。

第三步:重复步骤2,直到所有的样品都不能再分类为止。

在R语言中用kmeans()函数进行kmeans聚类。具体用法为:

kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong","Lloyd","Forgy","MacQueen"))

x: 数据构成的矩阵或数据框

centers: 聚类的个数或者是初始类的中心

iter.max: 最大迭代次数(缺省值为10)

nstart: 机集合的个数(当centers为聚类的个数时)

algorithm: 动态聚类的算法(缺省值为Hartigan-Wong方法)

例2

针对例1的数据我们进行kmeans聚类。

图中的分类结果显示和系统聚类的结果有一定的差距,组间的距离平方和占了整体距离平方和的71.7 % ,说明数据用kmengs分4类不是很理想,发现k=4并不符合实际情况。这就引出了kmeans的一个注意事项,

kmeans的一个注意事项

因为kmeans每次都是随机的把样品分为K个分类,然后计算距离,然后重新分类,所以每次的运行结果不太一样。对类别及k的数值选择不同,分类结果的好坏也不尽相同。选择一个正确的聚类数目对于划分数据是很重要的。

R语言中使用Gap统计值来确定k的个数,他是通过对数据进行bootstrap抽样来比较内差异性。这里使用cluster软件包里面的clusGap函数计算。

本例如下:

红色曲线表示Gap统计值和Gap误差线。最优的聚类数目是在一个标准差里使gap达到最小的聚类数目。由此可见本例中分8类最好。

聚类分析以及R语言实现过程明明同学就给大家介绍到这里

学习更多R语言数据分析使用技巧、EXCEL和PPT制作教程请查看历史文章。

有任何问题请评论区会说明并私信明明同学,明明同学帮助你解决数据分析,PPT制作,论文做图、以及高质量图片处理的难处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容