ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:182.35KB ,
资源ID:20696865      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20696865.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB统计工具箱在聚类分析中的应用Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB统计工具箱在聚类分析中的应用Word格式.docx

1、 之间的欧几里得距离)为了可视化,这里使用二维空间,一组模拟数据如图2.1所示:图2.1 模拟数据散点图从样本点的大体形状可以看出它们大致可以聚为三个类,其中两个是密集一些的,剩下的那些松散一些。现在我们要为这些样本点分组,以便于能区分出属于不同的簇的数据,如果按照分组把它们按照不同的形状画出来,就是下图这个样子:图2.2 聚类效果图 那么如何用计算机完成这个任务呢,本文采取matlab中的k-means算法对这种m维欧氏空间中的点进行聚类。在进行k-means的具体步骤之前,首先我们要对进行聚类的数据做一个假设:对于每一个类,我们可以选出一个中心点,使得该类中的所有的点到该中心点的距离比到其

2、他类的中心的距离小。当然实际情况中得到的数据并不能总是保证能满足这样的条件约束,但这通常已经是我们所能达到的最好的结果,而那些误差通常是固有存在的或者问题本身的不可分性造成的。例如下图所示的两个正态分布,从两个分布中随机地抽取一些数据点出来,混杂到一起,现在要让我们将这些混杂在一起的数据点按照它们被生成的那个分布分开来:图2.3 正态分布分析图我们可以看到,这两个分布它本身就有很大一部分重叠在一起了,比如,对于数据点 2.5 来说,它由两个分布产生的概率都是相等的,所以我们做的只能是一个猜测;稍微好一点的情况是 2 ,一般我们会将它归类到左边的那个分布,因为概率相对来说大一些,然而此时它由右边

3、的分布生成的概率仍然也是比较大的,也就是说我们仍然也有不小的几率会猜错。而整个阴影部分是我们所能达到的最小的猜错的概率,诸如此类的问题,它来自于问题本身的不可分性,无法避免。因此,我们把k-means 所依赖的这个假设看作是合理的。基于这样一个假设,我们再来导出 k-means 所要优化的目标函数:设我们一共有 n个数据点需要分为 K 个类,k-means 要做的就是最小化 上述函数,其中 在数据点 n 被归类到 cluster k 的时候为 1 ,否则为 0 。直接寻找和来最小化并不容易,不过我们可以采取迭代的办法:先固定,选择最优的,很容易看出,只要将数据点归类到离他最近的那个中心就能保证

4、最小。下一步则须固定,再求最优的。将对求导并令其导数为零,很容易得到 达到最小的时 应该满 足: 也就是说的值应当是所有cluster k中的数据点的平均值。由于每一次迭代都是取到的最小值,因此只会不断地减小或者不变,而不会增加,这就保证了 k-means 最终会到达一个极小值。虽然 k-means 并不能保证总是能得到全局最优解,但是对于这样的问题,像 k-means 这种复杂度的算法,这样的结果已经是很不错的了。2.2 k-means 算法的具体步骤选定 K个中心 的初值。这个过程通常是针对具体问题有一些启发式的选取方法,或者在大多数情况下采用随机选取的办法。因为前面我们说过 k-mean

5、s 并不能保证全局最优,而能否收敛到全局最优解其实和初值的选取有很大的关系,所以有时候我们会多次选取初值运行 k-means ,并取其中最好的一次结果。1)将每个数据点归类到离它最近的那个中心点所代表的 cluster 中;2)用公式 计算出每个 cluster 的新的中心点;3)重复第二步,一直到迭代了最大的步数或者前后的的值相差小于一个阈值为止。3、数值模拟分析3.1 模拟数据用matlab产生一组随机数,共300个,非别是完全可分离数据、重叠度较低数据和重叠度较高数据,并画出图形。 程序1 rng default; % For reproducibility X1 = randn(100

6、,2) +0*ones(100,1), m*ones(100,1); X2= randn(100,2) +0*ones(100,1), n*ones(100,1); X3=randn(100,2) +0*ones(100,1), p*ones(100,1); DataX=X1;X2;X3; opts = statset(Display,final); idx,C = kmeans(X,3,DistancecityblockReplicates,5,Options,opts); figure ; hold on plot(X1(:,1),X1(:,2),r. plot(X2(:,1),X2(:b

7、o plot(X3(:,1),X3(:r* title Randomly Generated Data;3.1.1 完全可分离数据 取m=15,n=8,p=1,此时做散点图如图3.1:图3.1 完全可分离数据散点图3.1.2 重叠度较低的数据 调用程序1,取m=15,n=10,p=5,如图3.2 图3.2 重叠度较低的数据散点图3.1.3 重叠度较高的数据 调用【程序1】,取m=15,n=12,p=9, 散点图如图3.3所示。图3.3 重叠度较高的数据散点图3.2 聚类分析3.2.1 完全可分离数据 程序2rng default;figure ;plot(X(:,1),X(:.title P=

8、idx;a=0;b=0;c=0;for i=1:1:300 if P(i)=1 a=a+1; elseif P(i)=2; b=b+1; else c=c+1; endendabcplot(X(idx=1,1),X(idx=1,2),MarkerSize,12)hold onplot(X(idx=2,1),X(idx=2,2),plot(X(idx=3,1),X(idx=3,2),plot(C(:,1),C(:kx,. ,15,LineWidth,3)legend(Cluster 1Cluster 2Cluster 3CentroidsLocationNWCluster Assignments

9、 and Centroidshold off取m=15,n=8,p=1;聚类效果图如图3.4所示:图3.4 完全可分离数据聚类效果图 Cluster1=100 Cluster2=100 Cluster3=1003.2.2重叠度较低的数据调用【程序2】,取m=15,n=10,p=5;聚类效果图如图3.5所示:图3.5 重叠度较低数据聚类效果图Cluster1=99 Cluster2=100 Cluster3=1013.2.3 重叠度较高的数据调用【程序2】,取m=12,n=10,p=8;聚类效果图如图3.6所示:图3.6 重叠度较高数据聚类效果图Cluster1=95 Cluster2=101

10、Cluster3=1043.3 模型评价 3.3.1 错误率计算方法 若聚类正确,则记, 若聚类错误,则记 则,聚类的错误率 3.3.2 模拟数据错误率分析表3.1 完全可分离数据错误率分析类数点数聚类前聚类后错误率Cluster11000.00Cluster2Cluster3表3.2 重叠度较低数据错误率分析 990.01101表3.2 重叠度较高数据错误率分析950.051040.04 从聚类分析错误率的计算来看,用k-means对重叠度较高的数据进行聚类的结果并不是特别理想,但正如本文前面提到的那个正态分布的例子,在聚类的过程中,出现了部分样本点的重合,这样到底把重合的样本点分到哪一类我

11、们只能进行猜测估计,当然我们有不小的几率会猜错,这来自于问题本身的不可分性,无法避免。因此,我们将 k-means 所依赖的假设对于每一个类,我们可以选出一个中心点,使得该类中的所有的点到该中心点的距离小于到其他类的中心的距离看作是合理的。下面我们将从具体实例进行分析:4、实例分析利用matlab从Excle中导入一组有关iris(鸢尾属植物)的数据,从Sepal.length(花萼长度),Sepal.width(花萼宽度),Petal.length(花瓣长度),Petal.width(花萼宽度)四个方面用k-means进行聚类分析,程序如下:X=data;Y=X(1:150,2:5);opt

12、s = statset(idx,ctrs = kmeans(X,2,city表4.1 iris(鸢尾属植物)聚类结果表序号Sepal.lengthSepal.widthPetal.lengthPetal.widthVariety(前)Variety(后)15.13.51.40.2Setosa24.934.73.21.344.63.11.553.665.43.91.70.473.40.3894.42.9100.1113.7124.81.613144.31.1155.81.2165.71718193.820212223243.30.5251.92627285.229303132334.1345.54.235363738394041424.52.343440.645464748495.35051Versicolor526.4536.954556.52.856576.3582.4596.6602.761625.9632.2646.1655.6666.76768696.2702.5711.87273747576776.87879802.68182838485868788899091

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1