matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文
MATLAB提供了兩種方法進行聚類分析:
1、利用clusterdata 函數(shù)對數(shù)據(jù)樣本進行一次聚類,這個方法簡潔方便,其特點是使用范圍較窄,不能由用戶根據(jù)自身需要來設定參數(shù),更改距離計算方法;
2、分步聚類:(1)用pdist函數(shù)計算變量之間的距離,找到數(shù)據(jù)集合中兩輛變量之間的相似性和非相似性;(2)用linkage函數(shù)定義變量之間的連接;(3)用cophenetic函數(shù)評價聚類信息;(4)用cluster函數(shù)進行聚類。
clusterdata
一種是利用 clusterdata函數(shù)對樣本數(shù)據(jù)進行一次聚類,其缺點為可供用戶選擇的面較窄,不能更改距離的計算方法;
Construct clusters from data
Syntax
T = clusterdata(X, cutoff)
T = clusterdata(X,'param1',val1,'param2',val2,...)
clusterdata是用plist、linkage、cophenetic三個函數(shù)對數(shù)據(jù)X進行聚類的;
X是m×n的矩陣,cutoff是一個閾值,使得聚類數(shù)劃分等級的。
'distance':Any of the distance metric names allowed by pdist (follow the 'minkowski' option by the value of the exponent p);任何距離量度的統(tǒng)稱(例如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(最大數(shù)量的聚類形式)
'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); %對隨機數(shù)使用“state”方法進行隨機數(shù)輸出
X = [rand(10,3); rand(10,3)+1.2; rand(10,3)+2.5]; %使用隨機數(shù)組成一個10行3列的數(shù)據(jù)
T = clusterdata(X,'maxclust',3); %對X數(shù)組進行聚類,聚成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
發(fā)現(xiàn)隨機值《5,
當改動X(9,1)=500時,看一些分類結果,根據(jù)經(jīng)驗可知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
轉載本文請聯(lián)系原作者獲取授權,同時請注明本文來自孫月芳科學網(wǎng)博客。
鏈接地址:http://blog.sciencenet.cn/blog-582961-504552.html
總結
以上是生活随笔為你收集整理的matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桔橙的功效与作用、禁忌和食用方法
- 下一篇: 急性咽喉炎吃什么药好得快?