《数学建模》实验指导书1

上传人:第*** 文档编号:34234300 上传时间:2018-02-22 格式:DOC 页数:10 大小:331.50KB
返回 下载 相关 举报
《数学建模》实验指导书1_第1页
第1页 / 共10页
《数学建模》实验指导书1_第2页
第2页 / 共10页
《数学建模》实验指导书1_第3页
第3页 / 共10页
《数学建模》实验指导书1_第4页
第4页 / 共10页
《数学建模》实验指导书1_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《《数学建模》实验指导书1》由会员分享,可在线阅读,更多相关《《数学建模》实验指导书1(10页珍藏版)》请在金锄头文库上搜索。

1、数学建模实验指导书刘 凤 秋哈理工应科院应用数学系2008 年 9 月实验二 聚类与判别实验项目名称:利用 Matlab 进行聚类和判别分析实验项目性质:普通实验所属课程名称:数学建模实验参考资料:实验计划学时:4一、实验目的:1、利用 MATLAB 进行聚类分析和判别分析;2、通过实际例题学习用聚类和判别分析解决相关简单的实际问题;3、理解判别分析误判率含义,应用判别模型进行预测。二、实验内容2.1 聚类分析1、工厂产品问题(教材 220 页例题 9.3);2、工人身高体重问题 (教材 239 页习题 9.1);2.2 判别分析1、 雨天非雨天问题(教材 231 页例 9.5);2、 蠓的分

2、类 (教材 234 页);三、实验方法、步骤及结果分析简要提示 3.1 基础知识一、聚类在 MATLAB 中通过 pdist、linkage、dendrogram、cluster 等函数来完成此种方法。层次聚类的过程如下:1、 相似性度量确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征对象之间差异的距离,例如最简单的平面上点的聚类中,最经常使用的就是欧几里得距离。使用 pdist 来实现,具体用法如下:Y = pdist(X,distance)根据距离 distance 来计算 X 中各点之间的距离 Y。其中 X 为数据集,distance 可以取为欧氏距离,马氏

3、距离,切比雪夫距离。对于具有 M 个点的数据集 X,pdist 之后的 Y 将是具有 M*(M-1)/2 个元素的行向量。例 1-1:Y=pdist(X)举例。 X=randn(6,2)X =-0.4326 1.1892-1.6656 -0.03760.1253 0.32730.2877 0.1746 -1.1465 -0.18671.1909 0.7258plot(X(:,1),X(:,2),bo) %画出 X 的散点图(图 1)图 1 Y=pdist(X) %计算 X 的第一个点与与 2-6 点、第 2 点与 3-6 点,.距离Y =Columns 1 through 151.7394 1

4、.0267 1.2442 1.5501 1.6883 1.8277 1.9648 0.5401 2.9568 0.2228 1.3717 1.1377 1.4790 1.0581 2.5092例子中 X 数据集可以看作包含 6 个平面数据点,pdist 之后的 Y 是一个行向量,15 个元素分别代表 X的第 1 点与 2-6 点、第 2 点与 3-6 点,.这样的距离。则 Y 为具有 个元素的行向量。26C注:(1)Y 这样的显示虽然节省了内存空间,但对用户来说不是很易懂,如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB 中可以用 squareform 把 Y 转换成方阵形式,方

5、阵中位置的数值就是 X 中第 i 和第 j 点之间的距离,显然这个方阵应该是个对角元素为 0 的对称阵。 squareform(Y)ans =0 1.7394 1.0267 1.2442 1.5501 1.68831.7394 0 1.8277 1.9648 0.5401 2.95681.0267 1.8277 0 0.2228 1.3717 1.13771.2442 1.9648 0.2228 0 1.4790 1.05811.5501 0.5401 1.3717 1.4790 0 2.50921.6883 2.9568 1.1377 1.0581 2.5092 0注:(2)pdist 可以

6、使用多种参数,指定不同的距离算法。另外,当数据规模很大时,可以想象pdist 产生的 Y 占用内存将是很吓人的,比如 X 有 10k 个数据点,那么 X 占 10k*8*2Bytes=160K,这看起来不算啥,但是 pdist 后的 Y 会有 10k*10k/2*8Bytes=400M。因此,使用 MATLAB 的层次聚类来处理大规模数据,大概是很不合适的。2、聚类树的产生确定好了对象间的差异度(距离)后,就可以用 Z=linkage(Y)产生层次聚类树。 Z=linkage(Y)Z =3.0000 4.0000 0.22282.0000 5.0000 0.54011.0000 7.0000

7、1.02676.0000 9.0000 1.05818.0000 10.0000 1.3717对于 6 个元素的 X, Y 是 1 行 6*(6-1)/2 的行向量,Z 则是(6-1)*3 的矩阵。Z 数组的前两列是索引下标列,最后一列是距离列。如上例中表示在产生聚类树的计算过程中,第 3 和第 4 点先聚成一类,他们之间的距离是 0.2228,以此类推。要注意的是,为了标记每一个节点,需要给新产生的聚类也安排一个标识,MATLAB 中会将新产生的聚类依次用 6+1,6+2,.依次来标识。比如第 3 和第 4 点聚成的类以后就用7 来标识,第 2 和第 5 点聚成的类用 8 来标识,依次类推。

8、通过 linkage 函数计算之后,实际上二叉树式的聚类已经完成了。Z 这个数据数组不太好看,可以用 dendrogram(Z)来可视化聚类树。dendrogram(Z)注:(3) dendrogram 默认最多画 30 个最底层节点,当然可是设置参数改变这个限制,比如dendrogram(Z,0)就会把所有数据点索引下标都标出来,但对于成千上万的数据集合,这样的结果必然是图形下方非常拥挤。3、聚类树的检验(Verifying the Cluster Tree)*初步的聚类树画完后,还要做很多后期工作的,包括这样的聚类是不是可靠,是不是代表了实际的对象分化模式,对于具体的应用,应该怎样认识这个

9、完全版的聚类树,产生具有较少分叉的可供决策参考的分类结果呢?这都是需要考虑的。MATLAB 中提供了 cluster, clusterdata, cophenet, inconsistent 等相关函数。cluster 用于剪裁完全版的聚类树,产生具有一定 cutoff 的可用于参考的树。clusterdata 可以认为是 pdist,linkage,cluster 的综合,当然更简易一点。表示为 6+1 类,即第 7 类表示为 6+2 类,即第 8 类cophenet 和 inconsistent 用来计算某些系数,前者用于检验一定算法下产生的二叉聚类树和实际情况的相符程度(就是检测二叉聚类

10、树中各元素间的距离和 pdist 计算产生的实际的距离之间有多大的相关性),inconsistent 则是量化某个层次的聚类上的节点间的差异性(可用于作为 cluster 的剪裁标准)。后面这些的理解,大概需要对聚类有一个更深刻更数学的认识。在一个层次聚类树中,在原数据集中任何两个对象最终是某种程度上联结在一起。联结的高度代表了包含这两个对象两个组之间的距离。这个高度就是两个对象间的分类距离。对于由 linkage 函数产生的聚类树,一种衡量其优劣的方式就是比较由 linkage 和 pdist 产生的距离。如果聚类有效,在分类树中,对象的联结与距离向量中的对象将会具有强关联性。Cophene

11、t 函数比较了这些值所在的两个集合并且计算它们的相关性,返回值称为分类相关系数,此值越接近 1,说明对数据聚类的结果越能精确。例如:图 4 将 20 工厂的值赋给 16 和 21 工厂的聚类结果根据图 4 可见,聚类结果为:第一次计算两个样品的最小距离是 1,所以把距离为 1 的点合成一类:17,18,19,12,13 ,5 ,6 ,11,7,8,9 ,1,2第二次计算两个类间的最短距离为 。把距离不大于 的类归为一类,则得 5 个扩大的新类:2220,17,18 ,19 , 5,6 ,11 ,3,7 ,8,9,10第三次计算两个类间的最小距离为 2,则有新类12,13,15,1 ,2 ,3,

12、4第四次计算两个类间的最小距离为 2.2361,则将所有的点(除 16 和 21) ,归在四类中:12,13,15,14,1,2,3,4,5 ,6,11,7 ,8 ,9,10,17,18 ,19,20二、判别能将数据模型进行分类的特征曲线称作分类器。对于一种已知的分类器而言,源于训练数据。然后基于此分类器对新的样本进行分类。两个总体的判别法参数化的方法,例如判别分析根据训练数据拟合出参数模型,然后代入新的数据对其进行分类。非参数化的方法,如分类树的方法使用其它的方式去确定分类器。判别分析使用训练数据去估计关于预测变量的判别函数。在预测空间中,判别函数确定不同类之间的界限。1、距离判别法以 G1

13、 和 G2 分别表示两总体,设它们是取值于 R p 中的随机变量,它们的数学期望和协方差矩阵分别为, , ,1E21VarGS2arS问题:设有一个样本 ,问 x 属于总体 G1 还是属于总体 G2?xRp距离判别法是根据 x 与 G1、G 2 的距离决定 x 的归属。其原则是:若 x 与 G1 距离小,则 x 属于 G1;若x 与 G2 的距离小,则 x 属于 G2。即()如果 ,则判断 ;1(,)d(,)1()如果 ,则判断 。212其中, 为马氏距离,即,i,2(,)idx(T1)()i iSx2,1class,err,POSTERIOR = classify(sample,traini

14、ng,group,type)说明:sample样本数据; training训练数据集。Classify 将训练集 training 中的每行样本 sample 数据进行分类, sample 与 training 必须是具有相同列数的矩阵;group训练数据所对应的类集合;type判别函数的类型;可选以下类型:(1)linear 线性分类器,为缺省时默认值。(2)diaglinear 对角线性分类器,类似于 linear, 但其具有一对角协方差矩阵估计 (naive Bayes classifiers).(3)quadratic Fits multivariate normal densitie

15、s with covariance estimates stratified by group.(4)diagquadratic 类似于quadratic,但具有一个对角协方差矩阵估计。Similar to quadratic, but with a diagonal covariance matrix estimate (naive Bayes classifiers).(5)mahalanobis 使用马氏距离及协方差估计。返回值 class对 sample 的分类结果;err基于训练数据的误判率估计;POSTERIOR后验概率矩阵的估计值,即已知第 i 个样本观察值条件下,其来源于第 j 各类的概率Pr(group j|obs i)。马氏判别法时不计算此后验概率。2、费希尔判别法费歇判别法是借助于方差分析导出线性判别函数。设有 个总体 ,从总体 中取 个 维观察数据,得kG(1,2)i kLGiinp: 1),nx:22( :Gk()()1,knxL其中, 为 维列向量。样本总

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号