资源描述
1第六章 聚类分析Clustering analysis 2模糊均值聚类模糊均值聚类1模糊减法聚类模糊减法聚类26.3 模糊均值聚类变量聚类变量聚类36.3.1 模糊C均值聚类 许多分类中,分类对象没有严格界限许多分类中,分类对象没有严格界限,如好人与坏人如好人与坏人,高与矮高与矮.用传统聚类方法用传统聚类方法(系系统聚类、统聚类、K K均值聚类均值聚类)进行分类进行分类,将待分类对将待分类对象严格划分到某个类中不尽合理象严格划分到某个类中不尽合理.L.A.Zadeh L.A.Zadeh于于2020世纪世纪6060年代中提出模糊年代中提出模糊集概念集概念,人们开始用模糊方法处理聚类问题人们开始用模糊方法处理聚类问题,形成模糊聚类分析形成模糊聚类分析.模糊聚类样品以一定概模糊聚类样品以一定概率属于某个指定类率属于某个指定类.常用方法模糊常用方法模糊C C均值聚类均值聚类(fuzzy c-mean cluster)(fuzzy c-mean cluster)样品集,样品集,n-n-样本容量样本容量.将将X X分为分为c c类类且且设设是第是第个样品属于第个样品属于第 个中心的隶属度,则个中心的隶属度,则特点:每一列元素只有一个特点:每一列元素只有一个1 1,每个样品只能属于,每个样品只能属于1 1类类.-隶属度矩阵或特征矩阵隶属度矩阵或特征矩阵1.硬C均值聚类表明表明j j个样品归属个样品归属i i类类样品集样品集隶属度矩阵定义:隶属度矩阵定义:j j个样品属于第个样品属于第i i个中心的隶属度个中心的隶属度-隶属度矩阵隶属度矩阵2.模糊C均值聚类思想-观测数据矩阵观测数据矩阵划分划分X X为为c c类类67定义目标函数:定义目标函数:其中其中是是c c个类的聚类中心个类的聚类中心是加权指数,是加权指数,的取值能够影响聚类的效果的取值能够影响聚类的效果(6.3.1)最优划分:选择最优划分:选择(1)(1)预先给定分类数预先给定分类数c c、加权指标数、加权指标数m m、初始化隶属度矩阵、初始化隶属度矩阵(2)(2)计算聚类中心计算聚类中心(3)(3)计算新的隶属度矩阵计算新的隶属度矩阵;3.模糊C均值聚类步骤(6.3.3)(6.3.2)center,U,obj_fcn=fcm(data,n_cluster,options)udata-data-原始观测数据,每行为样本原始观测数据,每行为样本(或观测或观测),列为指标;,列为指标;un_clustern_cluster-预先给定的聚类数;预先给定的聚类数;uoptionsoptions包含包含4 4个元素的向量,用来设置迭代参数。第一个元素个元素的向量,用来设置迭代参数。第一个元素为隶属度幂指数为隶属度幂指数m m,值大于,值大于1 1,默认,默认2 2;第;第2 2个元素是最大迭代次数,个元素是最大迭代次数,默认默认100100;第;第3 3个参数是目标函数的终止容限,默认个参数是目标函数的终止容限,默认0.000050.00005;第;第4 4个个元素用来控制是否显示元素用来控制是否显示 中间迭代过程,取中间迭代过程,取0 0表示不显示,表示不显示,1 1表示显表示显示示。4.MATLAB模糊C均值聚类命令fcm:center,U,obj_fcn=fcm(data,n_cluster,options)ucenter-n_clustercenter-n_cluster行行p p列矩阵,每列矩阵,每i i行表示第行表示第i i类重心类重心;uU-U-隶属度矩阵隶属度矩阵(n_cluster(n_cluster行行N N列列),每列元素和均为,每列元素和均为1 1;uU(i,j)-U(i,j)-第第j j个个体属于第个个体属于第i i列的隶属度列的隶属度;uobj_fcnobj_fcn目标函数向量列向量,第目标函数向量列向量,第k k个元素表示第个元素表示第k k步迭代目标步迭代目标函数值,在每次计算过程中均使用公式函数值,在每次计算过程中均使用公式(6.3.1).(6.3.1).4.MATLAB模糊C均值聚类命令fcm:例例6.3.1 6.3.1 用模糊均值聚类法对用模糊均值聚类法对FisherFisher的的IrisIris数据进行分类数据进行分类%导入导入irisiris数据数据,measmeas为为150150行行4 4列的列的3 3个总体的观测数据个总体的观测数据解:解:load load fisheririsfisheririscenter u=center u=fcmfcm(meas,3)(meas,3)%对对measmeas用模糊用模糊C C均值聚类法均值聚类法,分三分三类类,聚类中心聚类中心center,center,隶属度矩阵隶属度矩阵u u,距离为欧式距离,距离为欧式距离,m=2m=2index1=find(u(1,:)=max(u)index1=find(u(1,:)=max(u)%寻找属于第一类的样品,按隶属度最大原则归类寻找属于第一类的样品,按隶属度最大原则归类index2=find(u(2,:)=max(u)index2=find(u(2,:)=max(u)%寻找属于第二类的样品寻找属于第二类的样品index3=find(u(3,:)=max(u)index3=find(u(3,:)=max(u)%寻找属于第三类的样品寻找属于第三类的样品index1=第一类样品编号第一类样品编号52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7071 72 73 74 75 76 77 79 80 81 83 84 85 86 87 8889 90 91 92 93 94 95 96 98 99 100 102 107 114 120 122 124 127 128 134 139 143 147 150index2=第二类样品编号第二类样品编号51 53 78 101 103 104 105 106 108 109 110 111 112 115 116117 118 119 121 123 125 126 129 130 131 132 133 135 136 137 138 140 141 142 144 145 146 148 149index3=第三类样品编号第三类样品编号522 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 5319 20 21 22 23 24 25 26 27 28 29 30 31 32 7034 35 36 37 38 39 40 41 42 43 44 45 46 47 8848 49 5013+3个误判个误判,误判率误判率16/150=0.106716/150=0.1067从聚类的结果来看,只有第三类与预先给定的完全一致,从聚类的结果来看,只有第三类与预先给定的完全一致,其余两类均与实际的分类情况相差较大,因此误判率较高,其余两类均与实际的分类情况相差较大,因此误判率较高,误判率为误判率为16/150=0.106716/150=0.1067若选择若选择m=3,m=3,则误判率为则误判率为15/150=0.115/150=0.1原程序原程序修改为修改为center u=fcm(x,3,3)center u=fcm(x,3,3)14案例案例 ExcelExcel表表anli6_3.xls anli6_3.xls 列出了列出了20062006年我国年我国3131个省、个省、市、自治区和直辖市的市、自治区和直辖市的1212个月的月平均气温数据,数据个月的月平均气温数据,数据保存在文件保存在文件anli6_3.xlsanli6_3.xls中,数据格式如表所示,根据中,数据格式如表所示,根据这些数据,利用模糊这些数据,利用模糊C C均值聚类方法,对各地区进行聚均值聚类方法,对各地区进行聚类分析,并给出聚类分析,并给出聚3 3类结果。类结果。1516(1)读取anli6_3.xls中数据,并对数据进行标准化xdata,textdata=xlsread(anli6_3.xls);%从文件从文件anli6_3.xlsanli6_3.xls读取数据,读取数据,xdataxdata是是读取读取数据数据结果结果,textdatatextdata是提取是提取的的文本数据文本数据city=textdata(4:end,1);%提取元胞数据组提取元胞数据组textdatatextdata第第1 1列列4 4行至最后一行,即城市名称数据行至最后一行,即城市名称数据X=zscore(xdata);%调用调用zscorezscore函数将平均气温数据函数将平均气温数据xdataxdata标准化标准化17读取的文本数据结果读取的文本数据结果textdata18读取的样本城市名称读取的样本城市名称读取的数值型原始数据读取的数值型原始数据19(2)模糊均值聚类调用调用fcmfcm函数,根据标准化的平均气温数据矩阵函数,根据标准化的平均气温数据矩阵X X对各地区进对各地区进行模糊均值聚类,将各地区分为行模糊均值聚类,将各地区分为3 3类。程序:类。程序:options=3,200,1e-6,0;options=3,200,1e-6,0;%设置幂指数设置幂指数m=3,m=3,最大迭代次数最大迭代次数200200,目标函数终止容限为,目标函数终止容限为0.000060.00006,不显示中间迭代过程,不显示中间迭代过程,V,U,Jm=fcm(X,3,options)V,U,Jm=fcm(X,3,options)%调用调用fcmfcm函数进行模糊聚类,返回类中心坐标矩阵函数进行模糊聚类,返回类中心坐标矩阵centercenter,隶属度矩阵隶属度矩阵U U,目标函数,目标函数obj-fcnobj-fcn20V=类中心,每行为一个类的中心坐标类中心,每行为一个类的中心坐标-0.0068 0.0092 0.1915 0.1204 0.2096 0.4829 0.1347 0.0285 0.0972 0.1299 0.0145-0.0330 第第1 1个类中心向量个类中心向量V1V1,各指标取值居于中间,各指标取值居于中间-1.2112 1.1743 1.2768-1.1717-0.9853-0.9953-0.8856-0.8888-1.0991-1.1692-1.1928-1.2039 第第2 2个类中心向个类中心向量量V2V2,各指标取值小,均为负值,气温低的地区,各指标取值小,均为负值,气温低的地区0.7462 0.6675 0.6983 0.7620 0.7274 0.5940 0.9069 0.9482 0.8846 0.8567 0.8363 0.8068第第3 3个类中心向量个类中心向量v3v3,各指标取值均大于其他类,属于气温高的地区,各指标取值均大于其他类,属于气温高的地区21U=Columns 1 through 6 列列为样为样品品 0.5858 0.5614 0.7117 0.3973 0.1115 0.1628 归归1 1类隶属度类隶属度0.2075 0.2273 0.1149 0.4072 0.8180 0.7312大大 归归2 2类隶属度类隶属度0.2067 0.2113 0.1734 0.1955 0.0705 0.1060 隶属度隶属度 1 1号样品北京属于号样品北京属于1 1类隶属度类隶属度0.58580.5858最大,归属最大,归属1 1类,类,2 2号天津号天津0.56140.5614归属归属1 1类,类,3 3号石家庄号石家庄0.71170.7117类似类似 Columns 7 through12 0.1752 0.2106 0.3008 0.4368 0.2424 0.4463 0.7023 0.6367 0.1059 0.1125 0.0866 0.1089 0.1226 0.1527 0.5934 0.4507 0.6710 0.4448 9 9号样品上海归属号样品上海归属3 3类隶属度类隶属度0.59340.5934最大,归最大,归3 3类类隶属度矩阵为3*31矩阵,每列是一个城市属于3类的隶属度22程序程序id1=find(U(1,:)=max(U);id1=find(U(1,:)=max(U);%查找第查找第1 1类中所有城市序号类中所有城市序号id2=find(U(2,:)=max(U);id2=find(U(2,:)=max(U);%查找第查找第2 2类中所有城市序号类中所有城市序号id3=find(U(3,:)=max(U);id3=find(U(3,:)=max(U);%查找第查找第3 3类中所有城市序号类中所有城市序号city(id1)city(id1)%查找第查找第1 1类所包含的城市类所包含的城市city(id2)city(id2)%查找第查找第2 2类所包含的城市类所包含的城市city(id3)city(id3)%查找第查找第3 3类所包含的城市类所包含的城市(3)查看聚类结果231 1号样品号样品北京北京隶属隶属1 1类隶属度类隶属度度度0.58580.5858大于大于其他其他2 2类,归属类,归属1 1类类,其他类似,得分类结果如下:,其他类似,得分类结果如下:ans=第一第一类类包含的城市名称包含的城市名称 北京北京 天津天津 石家庄石家庄 合肥合肥 济南济南 郑州郑州 温州温州 贵阳贵阳 昆明昆明 西安西安 ans=第第2类类包含的城市名称包含的城市名称 太原太原 呼和浩特呼和浩特 沈阳沈阳 长春长春 哈尔滨哈尔滨 拉拉 萨萨 兰州兰州 西宁西宁 银川银川 乌鲁木齐乌鲁木齐 ans=第第3类类包含的城市名称包含的城市名称 上海上海 南京南京 杭州杭州 福州福州 南昌南昌 武汉武汉 长沙长沙 广州广州 南宁南宁 海口海口 重庆重庆 模糊模糊C C均值聚类的前提条件是需均值聚类的前提条件是需要知道分类数要知道分类数c,c,如果对于分类数无先如果对于分类数无先验信息,可运用模糊减法聚类以确定验信息,可运用模糊减法聚类以确定相应分类数和聚类中心,相应分类数和聚类中心,相应地该相应地该聚类数及聚类中心可以应用到模糊聚类数及聚类中心可以应用到模糊均值聚类,因此,模糊减法聚类可看均值聚类,因此,模糊减法聚类可看作是模糊均值聚类前期工作作是模糊均值聚类前期工作6.3.2模糊减法聚类(自学不要求)设为样品集,为样本容量模糊减法表示聚类中心 与样品 之间欧氏距离处的爬山函数(mountainfunction)定义为聚类认为每个样品均为潜在的聚类中心,令平方,在其中是一个正常数.爬山函数的取值越大,说明聚类中心与样品的距离越小,因此,我们选择那些能够使得爬山作为聚类中心.函数取得较大值的令是爬山函数的最大值,即,同时令对应的中心为,于是,为第一个聚类中心,为了对聚类的影响,寻找其他的聚类中心,有必要消除因此,考虑如下的函数其中,为新的爬山函数,为上一步的爬山函数,是的最大值,是新的聚类中心,是一个正常数.MATLAB中模糊减法聚类命令SUBCLUST格式格式C=SUBCLUST(X,RADII)输入:输入:X X为原始观测数据,行为个体,列为指标。为原始观测数据,行为个体,列为指标。RADIIRADII为介于为介于0,10,1之间的数,通常为之间的数,通常为0.2-0.50.2-0.5之间,之间,值越小,聚类中心的容量就越大值越小,聚类中心的容量就越大.输出:运用模糊减法聚类方法的聚类中心的估计输出:运用模糊减法聚类方法的聚类中心的估计 例例6.3.2 6.3.2 用模糊减法聚类法确定用模糊减法聚类法确定IrisIris数据的聚类中心数据的聚类中心.解:我们取解:我们取RADII=.6,RADII=.6,load fisheririsload fisheriris%导入导入irisiris数据数据c=c=subclustsubclust(meas,.6)%(meas,.6)%模糊减法聚类法模糊减法聚类法 c=c=6.0000 2.9000 4.5000 1.5000 6.0000 2.9000 4.5000 1.5000 5.0000 3.4000 1.5000 0.2000 5.0000 3.4000 1.5000 0.2000 6.8000 3.0000 5.5000 2.1000 6.8000 3.0000 5.5000 2.10006.4 聚类的有效性6.4.1谱系聚类的有效性谱系聚类的有效性6.4.2 模糊聚类的有效性模糊聚类的有效性 样品之间和两个总体样品之间和两个总体(类类)之间究竟采之间究竟采用何种距离为好?用何种距离为好?先假定样品之间的距离已定先假定样品之间的距离已定,例如选取例如选取欧氏距离欧氏距离.对于类间五种不同距离对于类间五种不同距离,哪种哪种距离使得聚类效果最好?距离使得聚类效果最好?聚类树的聚类树的cophenetcophenet距离与生成该聚类距离与生成该聚类树的原始距离之间的线性相关系数定义为树的原始距离之间的线性相关系数定义为聚类树的聚类树的cophenetcophenet相关,相关,它度量了个体间它度量了个体间的不相似性,的不相似性,若该系数越接近于若该系数越接近于1 1,则聚,则聚类效果越好类效果越好.6.4.1 谱系聚类的有效性1.cophenet相关系数 会用31d d分量依次为样品分量依次为样品(2,1),(3,1),(2,1),(3,1),(n,1),(3,2),(n,1),(3,2),(n,2),(n,2),(n,n-1),(n,n-1)的距的距离,即用距离命令离,即用距离命令d=d=pdistpdist(X)(X)得到的距离向量。得到的距离向量。-样本间样本间距离行向量距离行向量-样本观测矩阵样本观测矩阵32分量依次为样品分量依次为样品(2,1),(3,1),(2,1),(3,1),(n,1),(3,2),(n,1),(3,2),(n,2),(n,2),(n,n-1),(n,n-1)初次初次并为一个类中时的距离,称为并为一个类中时的距离,称为copheneticcophenetic距离距离(和聚类树和聚类树产生的距离相关产生的距离相关)。-cophenetic距离向量距离向量33cophenet相关系数注意注意:cophenetcophenet相关系数相关系数R R反应了聚类效果好坏,反应了聚类效果好坏,R R越越接近接近1 1,聚类效果越好。可通过,聚类效果越好。可通过R R对比各种不同的距离对比各种不同的距离计算方法和不同的系统聚类方法的聚类效果。计算方法和不同的系统聚类方法的聚类效果。-平平均值均值34MATLAB计算cophenet相关系数命令:d=d=pdistpdist(X,distance)(X,distance)%计算距离计算距离d d z=linkage(d,method)z=linkage(d,method)%计算类间距离计算类间距离 R=cophenet(z,d)%求求Z Z和和d d的的cophenetcophenet相关系数相关系数 R,copd=cophenet(z,d)输入输入d d是样品之间的某种距离是样品之间的某种距离,z z 是用某种类间距离是用某种类间距离linkagelinkage后的结果后的结果.输出输出R R为为cophenecophene相关系数,相关系数,copdcopd为为cophenecophene距离向量距离向量.判断:判断:R R越接近于越接近于1 1,聚类效果越好。,聚类效果越好。省(市)省(市)工薪收入工薪收入(元元/人人)经营净收入经营净收入(元元/人人)财产性收入财产性收入(元元/人人)转移性收入转移性收入(元元/人人)北 京18738.96778.36452.757707.87上 海21791.111399.14369.126199.77安 徽9302.38959.43293.923603.72陕 西8354.63638.7665.332610.61新 疆9422.22938.15141.751976.49表表6.1 5省省(区、市区、市)城镇居民人均家庭收入城镇居民人均家庭收入例例6.4.1 20086.4.1 2008年我国年我国5 5省、区、市城镇居民人均年家庭省、区、市城镇居民人均年家庭收入如下表收入如下表为了研究上述为了研究上述5 5个省、区、市的城镇居民收入差异,进行个省、区、市的城镇居民收入差异,进行谱系聚类时,选用哪种类间距离好?谱系聚类时,选用哪种类间距离好?解:以样品间的距离为欧氏距离为例,考虑类间的五解:以样品间的距离为欧氏距离为例,考虑类间的五种不同距离:种不同距离:最短距离最短距离:z1=linkage(d)z1=linkage(d)最长距离最长距离:z2=linkage(z2=linkage(d,completed,complete)类平均距离类平均距离:z3=linkage(z3=linkage(d,averaged,average)重心距离重心距离:z4=linkage(z4=linkage(d,centroidd,centroid)离差平方和离差平方和:z5=linkage(z5=linkage(d,wardd,ward)其中其中d=d=pdistpdist(x),x(x),x为原始矩阵为原始矩阵.程序:程序:x=18738.96 778.36 452.75 7707.8721791.11 1399.14 369.12 6199.779302.38 959.43 293.92 3603.728354.63 638.76 65.33 2610.619422.22 938.15 141.75 1976.49;d=pdist(x);%计算出各行之间的欧氏距离计算出各行之间的欧氏距离z1=linkage(d)z1=linkage(d)%最短距离最短距离z2=linkage(z2=linkage(d,completed,complete)%最长距离最长距离z3=linkage(z3=linkage(d,averaged,average)%类平均距离类平均距离z4=linkage(z4=linkage(d,centroidd,centroid)%重心距离重心距离 z5=linkage(z5=linkage(d,wardd,ward)%离差平方和离差平方和R=R=cophenetcophenet(z1,d),(z1,d),cophenetcophenet(z2,d),(z2,d),cophenetcophenet(z3,d),(z3,d),cophenetcophenet(z4,d),(z4,d),cophenetcophenet(z5,d)(z5,d)%计算计算cophenetcophenet相相关系数关系数输出结果输出结果:R=0.9809 0.9811 R=0.9809 0.9811 0.98120.9812最大最大 0.98120.9812最大最大 0.98030.9803由于最大值为由于最大值为0.9812,0.9812,所以类间距离为所以类间距离为类平均距离类平均距离和和重心重心距离距离效果最好效果最好.说明:说明:如果要找到最理想的分类方法,可对每一种样品如果要找到最理想的分类方法,可对每一种样品之间的距离,都计算上述的复合相关系数,这样就可找之间的距离,都计算上述的复合相关系数,这样就可找到最理想的样品距离与对应的类间距离到最理想的样品距离与对应的类间距离.2.样品之间距离与类间距离搭配评价准则(自学):1.统计量:越大,聚类效果越好越大,聚类效果越好样本总离差平方和分解:-总离差平方和总离差平方和-类内偏差差平方和类内偏差差平方和-类间偏差差平方和类间偏差差平方和样样本本总总离差平方和分解:离差平方和分解:当样品各自为一类时,而当所有的样品为同一类时,,因此如何恰当地使用该准则,要具体问题具体分析.随着的减少而减少,可以从确定分为几类比较合适.由于取值的变化来例例6.4.2 试利用统计量确定Iris data的分类数.解解:load fisheririsx=meas;n,p=size(x);n1=n-1;format longc=zeros(n1-1,1);for j=2:n1 d=pdist(x);z1=linkage(d,complete);c=cluster(z1,j);%分类数分类数jk=1;if k0 a=x(b,:);c(j)=sum(l*var(a)+c(j);end end endR=1-c/sum(n1*var(x);optimaln=find(R=max(R)输出结果为输出结果为:optimaln=8k=1;if k0 a=x(b,:);c(j)=sum(l*var(a)+c(j);end end endR=1-c/sum(n1*var(x);optimaln=find(R=max(R)2伪统计量伪统计量用于评价分为类的效果.伪统计量的值越大表示这个样品可显著地分为类.3伪统计量其中分别表示第类和第类的离差平方和,表示合并类和为新类后类内离差平方和的增值.模糊均值聚类需要预先给定分类数,模糊均值聚类需要预先给定分类数,如何确定最优的分类数,是聚类有效性所如何确定最优的分类数,是聚类有效性所研究的内容至今为止,仍然没有一个最研究的内容至今为止,仍然没有一个最优的标准,只能是在相应的准则下最优优的标准,只能是在相应的准则下最优对于二维数据,可根据其平面图像大致对于二维数据,可根据其平面图像大致看出分为几类合适,对于高维数据,此方看出分为几类合适,对于高维数据,此方法就失效了,因此,有必要给出一些判别法就失效了,因此,有必要给出一些判别准则,比较有名的判别准则有准则,比较有名的判别准则有:6.4.2 模糊聚类的有效性(自学不要求)(1)Bezdek准则其中表示第个数据点到第类中心的隶属度,且的最小值点对应最佳聚类数(2)Xie and Beni(XB)准则,对应的即为最优聚类数(3)Kuyama&Sugeno其中其中表示第表示第 个数据点到第个数据点到第类中心的隶属度,类中心的隶属度,的最小值点对应最佳聚类数的最小值点对应最佳聚类数(4)(4)Kwon其中表示第个数据点到第类中心的隶属度,的最小值点即为最佳聚类数例例6.4.3对经典的对经典的IrisIris数据和葡萄酒数据,分别应用上数据和葡萄酒数据,分别应用上述准则,确定最佳聚类数述准则,确定最佳聚类数解:利用解:利用MatlabMatlab软件我们可以求得相应的最佳聚类数。软件我们可以求得相应的最佳聚类数。m准则函数花蕾聚类数葡萄酒聚类数1.5VPE2 2 VXB2 2 VFS5 7 VK2 2 2VPE2 2 VXB2 2 VFS5 11 VK2 2 2.1VPE2 2 VXB2 2 VFS56VK2 2 2.5VPE2 2 VXB2 2 VFS54 VK2 2 表6.3 两类经典数据FCM的最佳聚类数6.5 变量聚类变量聚类在实际中应用变量聚类在实际中应用:可发现某些变量间的一些共性,有利于可发现某些变量间的一些共性,有利于分析问题和解决问题;分析问题和解决问题;可作为某些数据分析的中间过程可作为某些数据分析的中间过程:如在回归分析中如在回归分析中,若涉及自变量多若涉及自变量多,相关性强相关性强,先考先考虑变量聚类虑变量聚类,再在每一类变量中进行主成分分析再在每一类变量中进行主成分分析,选取选取各类中的某些主成分作为新自变量各类中的某些主成分作为新自变量,这样不但消除变量这样不但消除变量间的复共线性,也可达到降低自变量维数的目的间的复共线性,也可达到降低自变量维数的目的1.相似系数矩阵 注意注意:58591.读取examp10_2_2.xls中数据,进行变量系统聚类 X,textdataX,textdata=xlsreadxlsread(examp10_2_2.xls);(examp10_2_2.xls);%examp10_2_2.xls%examp10_2_2.xls中数据,并转为距离向量中数据,并转为距离向量d=1-abs(X);d=1-abs(X);%进行数据变换,把相关系数矩阵化为距离进行数据变换,把相关系数矩阵化为距离d=d=triltril(d);%(d);%提取提取d d的下三角部分的下三角部分b=nonzero(s);%b=nonzero(s);%去掉去掉d d中零元素中零元素b=bb=b;%;%化为行向量化为行向量60(2)计算距离61(3)调用linkage函数创建系统聚类树距离Z=linkage(y,Z=linkage(y,averageaverage)Z=聚聚类过类过程程 10.0000 11.0000 0.0430 8.0000 9.0000 0.1800 3.0000 13.0000 0.2680 12.0000 15.0000 0.2805 6.0000 7.0000 0.3370 2.0000 18.0000 0.3403 14.0000 17.0000 0.3485 4.0000 21.0000 0.4507 1.0000 20.0000 0.4552 5.0000 19.0000 0.5065 16.0000 23.0000 0.5382 22.0000 24.0000 0.5511 25.0000 26.0000 0.710362varlabel=textdata(2:end,1);%varlabel=textdata(2:end,1);%提取变量名称为后面提取变量名称为后面聚类做准备聚类做准备H=H=dendrogramdendrogram(Z,0,orientation,right,labels,varl(Z,0,orientation,right,labels,varlabel);%abel);%做出聚类树形图,方向从右至左,显示所有叶结做出聚类树形图,方向从右至左,显示所有叶结点,用城市名作为叶结点标签,叶结点标签在左侧,返回点,用城市名作为叶结点标签,叶结点标签在左侧,返回线条句柄线条句柄H Hset(H,LineWidth,2,Color,r);%set(H,LineWidth,2,Color,r);%设置线条宽为设置线条宽为2 2,颜色为红色,颜色为红色r rxlabel(xlabel(并类距离(类平均法)并类距离(类平均法))%)%为为X X轴加标签轴加标签(4)绘制聚类树形图6364T=cluster(Z,maxclust,2)%给出分2类结果结结果:果:T=1 1 2 2 2 2 2 1 1 1 1 1 2 2由结果看出,由结果看出,1414个变量可以分为个变量可以分为2 2大类,大类,1 1类变量类变量:上体长,手臂长,前腰节高,后腰节高,:上体长,手臂长,前腰节高,后腰节高,总体长,身高,下体长,反应人高矮的变量总体长,身高,下体长,反应人高矮的变量;2 2类变量类变量:胸围,颈围,总肩宽,前胸宽,后背宽,:胸围,颈围,总肩宽,前胸宽,后背宽,腰围,臀围,反应人胖瘦的变量。腰围,臀围,反应人胖瘦的变量。两大类各自又可以分为两小类,如第两大类各自又可以分为两小类,如第1 1大类中的后背、大类中的后背、前胸、总肩宽是一个小类,颈围、臀围、腰围、胸围为前胸、总肩宽是一个小类,颈围、臀围、腰围、胸围为另一个小类。另一个小类。(5)给出分2类结果65总结1.1.样品间距离公式,类间距离距离法;样品间距离公式,类间距离距离法;2.2.谱系聚类法、快速聚类法、谱系聚类法、快速聚类法、K K均值聚类法均值聚类法3.Matlab3.Matlab聚类命令聚类命令作业:作业:6.1 6.26.1 6.2
展开阅读全文