MATLAB提供了两种方法进行聚类分析:

1、利用clusterdata 函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法;

2、分步聚类:(1)用pdist函数计算变量之间的距离,找到数据集合中两辆变量之间的相似性和非相似性;(2)用linkage函数定义变量之间的连接;(3)用cophenetic函数评价聚类信息;(4)用cluster函数进行聚类。

clusterdata

一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法;

Construct clusters from data

Syntax

T = clusterdata(X, cutoff)

T = clusterdata(X,'param1',val1,'param2',val2,...)

clusterdata是用plist、linkage、cophenetic三个函数对数据X进行聚类的;

X是m×n的矩阵,cutoff是一个阈值,使得聚类数划分等级的。

'distance':Any of the distance metric names allowed by pdist (follow the 'minkowski' option by the value of the exponent p);任何距离量度的统称(例如minkowski距离,欧式距离,马氏距离等)

'linkage'Any of the linkage methods allowed by the linkage function,(使用linkage的任何连接方法)

'cutoff'Cutoff for inconsistent or distance measure(不一致或距离的测量)

'maxclust'Maximum number of clusters to form(最大数量的聚类形式)

'criterion' Either 'inconsistent' or 'distance'(不一致或距离)

'depth'Depth for computing inconsistent values(计算深度不一致性)

例1

X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900];

T=clusterdata(X,0.9);

例2

rand('state',12); %对随机数使用“state”方法进行随机数输出

X = [rand(10,3); rand(10,3)+1.2; rand(10,3)+2.5]; %使用随机数组成一个10行3列的数据

T = clusterdata(X,'maxclust',3); %对X数组进行聚类,聚成3类

find(T==2)%找到分类为2的类的索引

ans =

11

12

13

14

15

16

17

18

19

20

X的随机值为=

0.526563655116966 0.314160189162942 0.080065636597459

0.750205183120925 0.460299825114432 0.898696464610818

0.665461227195465 0.694011417546359 0.910465702645885

0.964047588742116 0.001430822000113 0.739874220859649

0.108159056609906 0.553028790706944 0.066380478467501

0.931359132232088 0.825424913690079 0.952315438754947

0.678086959238781 0.341903966913527 0.561481952384538

0.982730942848522 0.704605210117893 0.087097863371214

0.61469160803023 0.046998923124057 0.60240645087182

0.580161260939054 0.917354969151808 0.588163845515278

1.382463100625415 1.963581607169883 1.944378753177476

2.10675860143888 1.67148731861097 1.348544774679616

1.398800733731886 1.661420472538929 1.322245532927235

1.714104593458096 1.491763801233318 1.45432173385559

1.541023406502844 1.843749450951724 1.646589531966269

2.085124805604476 1.845243529032419 2.173408525894387

1.307487415137871 1.538016451755838 2.160077353655978

1.414477011958066 1.993290719360019 1.991074187198809

1.6194348823557 1.477032783770685 1.897881627154902

1.59880598537658 1.549889835739045 1.575633454910911

3.372473795296814 2.696353072311677 3.399817031232327

3.137051221640599 3.365280920827324 3.060890738629505

3.294132532102184 3.19619501414256 2.907001691195813

2.655105137336478 3.067858951189933 2.971985435647922

3.309410399232246 2.592839654750768 2.577141096894014

2.59557218643413 3.334773703571633 3.087931862332622

2.58206179687188 3.416156742412155 3.264419917354281

2.71127001520713 2.770324454152381 2.634665034882088

2.796178480239203 3.254737176245175 3.418015616180941

2.647417542325437 2.545380417876791 3.253541134557589

发现随机值《5,

当改动X(9,1)=500时,看一些分类结果,根据经验可知X(9,1)会被单独分成一类:

find(T==3)

ans =

9

find(T==2)

ans =

1

2

3

4

5

6

7

8

10

11

12

13

14

15

16

17

18

19

20

>> find(T==1)

ans =

21

22

23

24

25

26

27

28

29

30

转载本文请联系原作者获取授权,同时请注明本文来自孙月芳科学网博客。

链接地址:http://blog.sciencenet.cn/blog-582961-504552.html

matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文相关推荐

  1. php 聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文

    MATLAB提供了两种方法进行聚类分析: 1.利用clusterdata 函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法: 2. ...

  2. matlab基本矩阵运算,科学网—matlab中矩阵基本运算 - 成爱芳的博文

    以矩阵A为例: (1)转置矩阵求取   AT transpose(A) >> A=[1 0 3; 2:4; 3 1 0] A = 1     0     3 2     3     4 3 ...

  3. matlab 水平投影,科学网—Matlab中如何将投影信息写入到shape文件中 - 朱永超的博文...

    在Matlab中保存shape格式数据时,没有具体的函数可以将投影信息直接写入到shape文件中,不过可以通过另外一种方式实现.看下shape格式的文件不难发现,shape文件的投影信息是一个单独的文 ...

  4. matlab全景图素材,科学网—meshlab查看360度全景图像 - 王琳的博文

    一. 常见的360o全景照片,图像长宽比例通常为2:1. 二 . 用matlab的sphere()函数计算球面mesh的Vertex坐标[x,y,z]以及纹理坐标[xt,yt] N = 100; [x ...

  5. matlab 数据分割,科学网—MATLAB把一个包含多个站点数据的文件分割到各个站点单独的文件夹 - 张乐乐的博文...

    有65个站点的气象数据,但是这些数据全部在一个文件中,本程序主要想着把每个站点的数据放在各个单独的文件夹中.下面是我给写的程序: clear;clc %读取数据 shuju=importdata('C ...

  6. matlab syms min,科学网—Matlab中的syms与conj - 孔令才的博文

    Matlab提供了强大的符号计算功能,主要利用syms函数创建符号变量,例: >> syms x a b; >> diff(a^(b*x)+exp(a*x^2+b*x),x) ...

  7. matlab 输出 syms,科学网-Matlab中的syms与conj-孔令才的博文

    Matlab提供了强大的符号计算功能,主要利用syms函数创建符号变量,例: >> syms x a b; >> diff(a^(b*x)+exp(a*x^2+b*x),x) ...

  8. matlab生成卡方分布,科学网—Matlab 生成随机数大全 - 强幸子的博文

    高斯分布随机数生成 randn(a):生成一个a*a的标准高斯(正态)分布的随机阵. randn(a,b)或者randn([a,b]): 生成一个a行b列的标准高斯分布的随机阵. m+sqrt(n)* ...

  9. matlab meshgrid例子,科学网—matlab使用笔记-meshgrid函数的使用 - 骆佳良的博文

    [X,Y]=meshgrid[x,y] 结果生成两个矩阵 X 与 Y. 矩阵X的每一行都与x相同.矩阵Y的每一列都与y相同. 矩阵X的行数等于矩阵y的行数,矩阵Y的列数等于矩阵x的列数. 例子: 输入 ...

最新文章

  1. oracle数据库备份恢复篇(一)
  2. 08. 函数和流程控制
  3. CVE-2015-1635(MS15-034)-HTTP.sys远程代码执行复现
  4. mysql left join 索引失效_MySQL索引列上做操作导致索引失效案例分析
  5. d3.js 共享交换平台demo
  6. P1110 [ZJOI2007]报表统计
  7. linux如何安装django
  8. 机器学习之开源库大总结
  9. 转载:如果你想辞职,先不妨看看这篇文章
  10. 三周一套报表开发系统,原来Excel的顶级替代品是它
  11. System V 共享内存 和 系列函数
  12. 线性代数基本公式结论简要总结(1)
  13. java快速生成接口文档方法总结
  14. 从“西点军校法则”学管理
  15. wps转word WPS表格如何实现冻结窗格呢
  16. 计算机怎么打字快,电脑新手如何快速打字?
  17. 用Python下载xkcd图片
  18. linux 渗透 系统,初识Linux渗透:从枚举到内核利用
  19. 单词数 HDU - 2072(字典树模板题amp;stl)
  20. 两个质数互质是_科学网—理解黎曼猜想(二)两个自然数互质的概率是多少? - 袁岚峰的博文...

热门文章

  1. 数据结构——树的简单操作集合
  2. dns的主从服务器的简单配置
  3. python中获取当前所有的logger
  4. 安装win7时,无法创建新的分区系统和无法定位现有分区系统
  5. 人的价值不在于能力,而在于位置 » 社区 | Ruby China
  6. 如何检查你的友情链接是否还在?
  7. 转载:KOF97八神攻防战
  8. MVC UpdateModel的未能更新XXXXX的类型模型
  9. sql server 2008学习5 sql基础
  10. Linux下修改root密码以及找回root密码的方法