- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
聚类分析clusteranalysis31样品变量
MATLAB软件中实现K-均值聚类的命令是kmeans, 其调用格式 IDX = kmeans( (X, K) 功能是将原始数据矩阵X聚成K类,使得样本到类重心距离和 最小,使用欧氏平方距离。其中输入X为原始观测数据,行为 个体,列为指标。输出IDX为N行1列的列向量,包含每个样品 属于哪一类的信息,类似于Cluster的输出结果。 * (1)n个样品开始作为n个类,计算两两之间的距离或相似系数,得到实对称矩阵 (2)从D0的非主对角线上找最小(距离)或最大元素(相似系数),设该元素是dpq,则将Gp,Gq合并成一个新类Gr=(Gp,Gq),在D0中去掉Gp,Gq所在的两行、两列,并加上新类与其余各类之间的距离(或相似系数),得到n-1阶矩阵D1。 (3)从D1出发重复步骤(2)的做法得到D2,再由D2出发重复上述步骤,直到所有样品聚为一个大类为止。 (4)在合并过程中要记下合并样品的编号及两类合并时的水平,并绘制聚类谱系图。 例1.为了研究辽宁、浙江、河南、甘肃、青海5省1991年城镇居民生活消费规律,需要利用调查资料对五个省进行分类,指标变量共8个,意义如下:x1:人均粮食支出,x2:人均副食支出;x3:人均烟酒茶支出,x4:人均其他副食支出,x5:人均衣着商品支出,x6:人均日用品支出,x7:人均燃料支出,x8人均非商品支出 X1 X2 X3 X4 X5 X6 X7 X8 辽宁 7.9 39.77 8.49 12.94 19.27 11.05 2.04 13.29 浙江 7.68 50.37 11.35 13.3 19.25 14.59 2.75 14.87 河南 9.42 27.93 8.2 8.14 16.17 9.42 1.55 9.76 甘肃 9.16 27.98 9.01 9.32 15.99 9.1 1.82 11.35 青海 10.06 28.64 10.52 10.05 16.18 8.39 1.96 10.81 表1 1991年五省城镇居民生活月均消费(元/人) 例3. 从例1算得的样品间的欧氏距离矩阵出发,用下列方法进行谱系聚类。 (1)最短距离,(2)最长距离 解:我们用1,2,3,4,5分别表示辽宁、浙江、河南、甘肃和青海,将距离矩阵记为D0 (1)最短距离法:将各省看成一类,即Gi={i} i=1,…,5,从D0可以看出各类中距离最短的是d43=2.20,因此将G3,G4在2.20水平上合成一个新类G6={3,4},计算G6和G1,G2,G5之间的最短距离 ,得 将计算结果作为第一列,从D0中去掉第3、4行与3、4列,剩余元素作为其余各列得到D1 从D1可以看出G6与G5的距离最小,因此在2.21的水平上将G6与G5合成一类G7,即G7={3,4,5}计算G7与G1,G2之间的最短距离,得 将计算结果作为第一列,从D1中划掉{3,4}与{5}所在的行与列,剩余元素作为其他列得 从D2可以看出G1,G2最接近,在11.67的水平上合并成一类G8,至此只剩下G7,G8两类,他们之间的距离为:12.8,故在此水平上将合成一类,包含了全部的五个省份。 最后,我们作出谱系聚类图: 图1 最短距离聚类图 最长距离聚类方法,同学练习 系统聚类分析用到的函数: 函 数 功 能 pdist 计算观测量两两之间的距离 squareform 将距离矩阵从上三角形式转换为方形形式,或从方形形式转换为上三角形式 linkage 创建系统聚类树 dendrogram 输出冰柱图 cophenet 计算Cophenetic相关系数 cluster 根据linkage函数的输出创建分类 clusterdata 根据数据创建分类 inconsistent 计算聚类树的不连续系数 Matlab实现聚类: Matlab提供了两种方法进行聚类分析。 一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离;(2)用 linkage函数定义变量之间的连接;(3)用 cophenetic函数评价聚类信息;(4)用cluster函数创建聚类。 3.2.4 谱系聚类的MATLAB实现: 谱系聚类的MATLAB实现 (1)输入数据矩阵X,注意行与列的实际意义; (2)计算各样品之间的距离(行) 调用格式:Y=pdist(X,’metric’) X*=zscore(X);? %标准化数据 说明:用 ‘metric’指定的方法计算 X 数据矩阵中对象之间的距离。’ X:一个n
文档评论(0)