试验二聚类与判别.docVIP

  • 2
  • 0
  • 约6.93千字
  • 约 10页
  • 2018-05-09 发布于天津
  • 举报
试验二聚类与判别

《数学建模》实验指导书 刘 凤 秋 哈理工应科院应用数学系 2008年9月 实验二 聚类与判别 实验项目名称:利用Matlab进行聚类和判别分析 实验项目性质:普通实验 所属课程名称:数学建模 实验参考资料: 实验计划学时:4 一、实验目的: 1、利用MATLAB进行聚类分析和判别分析; 2、通过实际例题学习用聚类和判别分析解决相关简单的实际问题; 3、理解判别分析误判率含义,应用判别模型进行预测。 二、实验内容 2.1 聚类分析 1、工厂产品问题(教材220页例题9.3); 2、工人身高体重问题 (教材239页习题9.1); 2.2 判别分析 雨天非雨天问题(教材231页例9.5); 蠓的分类 (教材234页); 三、实验方法、步骤及结果分析简要提示 3.1 基础知识 一、聚类 在MATLAB中通过pdist、linkage、dendrogram、cluster等函数来完成。层次聚类的过程: 确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征对象之间差异的距离,例如最简单的平面上点的聚类中,最经常使用的就是欧几里得距离。 Y = pdist(X,distance)根据距离distance来计算X中各点之间的距离Y。 其中X为数据集 对于具有M个点的数据集X,pdist之后的Y将是具有M*(M-1)/2个元素的行向量。 Y=pdist(X) X=randn(6,2) X = -0.4326 1.1892 -1.6656 -0.0376 0.1253 0.3273 0.2877 0.1746 -1.1465 -0.1867 1.1909 0.7258 plot(X(:,1),X(:,2),bo) %画出X的散点图(图1) 图1 Y=pdist(X) %计算X的第一个点与与2-6点、第2点与3-6点,......距离 Y = Columns 1 through 1 1.7394 1.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点,......这样的距离。个元素的行向量。 注:(1)Y这样的显示虽然节省了内存空间,但对用户来说不是很易懂如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB中可以用squareform把Y转换成方阵形式,方阵中i,j位置的数值就是X中第i和第j点之间的距离,显然这个方阵应该是个对角元素为0的对称阵。 squareform(Y) ans = 0 1.7394 1.0267 1.2442 1.5501 1.6883 1.7394 0 1.8277 1.9648 0.5401 2.9568 1.0267 1.8277 0 0.2228 1.3717 1.1377 1.2442 1.9648 0.2228 0 1.4790 1.0581 1.5501 0.5401 1.3717 1.4790 0 2.5092 1.6883 2.9568 1.1377 1.0581 2.5092 0 注:(2)pdist可以使用多种参数,指定不同的距离算法。另外,当数据规模很大时,可以想象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.2228 2.0000 5.0000 0.5401 1.0000 7.0000 1.0267 6.0000 9.0000 1.0581 8.0000 10

文档评论(0)

1亿VIP精品文档

相关文档