php 聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文
MATLAB提供了兩種方法進(jìn)行聚類分析:
1、利用clusterdata 函數(shù)對(duì)數(shù)據(jù)樣本進(jìn)行一次聚類,這個(gè)方法簡(jiǎn)潔方便,其特點(diǎn)是使用范圍較窄,不能由用戶根據(jù)自身需要來(lái)設(shè)定參數(shù),更改距離計(jì)算方法;
2、分步聚類:(1)用pdist函數(shù)計(jì)算變量之間的距離,找到數(shù)據(jù)集合中兩輛變量之間的相似性和非相似性;(2)用linkage函數(shù)定義變量之間的連接;(3)用cophenetic函數(shù)評(píng)價(jià)聚類信息;(4)用cluster函數(shù)進(jìn)行聚類。
clusterdata
一種是利用 clusterdata函數(shù)對(duì)樣本數(shù)據(jù)進(jìn)行一次聚類,其缺點(diǎn)為可供用戶選擇的面較窄,不能更改距離的計(jì)算方法;
Construct clusters from data
Syntax
T = clusterdata(X, cutoff)
T = clusterdata(X,'param1',val1,'param2',val2,...)
clusterdata是用plist、linkage、cophenetic三個(gè)函數(shù)對(duì)數(shù)據(jù)X進(jìn)行聚類的;
X是m×n的矩陣,cutoff是一個(gè)閾值,使得聚類數(shù)劃分等級(jí)的。
'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(不一致或距離的測(cè)量)
'maxclust'Maximum number of clusters to form(最大數(shù)量的聚類形式)
'criterion' Either 'inconsistent' or 'distance'(不一致或距離)
'depth'Depth for computing inconsistent values(計(jì)算深度不一致性)
例1
X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900];
T=clusterdata(X,0.9);
例2
rand('state',12); %對(duì)隨機(jī)數(shù)使用“state”方法進(jìn)行隨機(jī)數(shù)輸出
X = [rand(10,3); rand(10,3)+1.2; rand(10,3)+2.5]; %使用隨機(jī)數(shù)組成一個(gè)10行3列的數(shù)據(jù)
T = clusterdata(X,'maxclust',3); %對(duì)X數(shù)組進(jìn)行聚類,聚成3類
find(T==2)%找到分類為2的類的索引
ans =
11
12
13
14
15
16
17
18
19
20
X的隨機(jī)值為=
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)隨機(jī)值《5,
當(dāng)改動(dòng)X(9,1)=500時(shí),看一些分類結(jié)果,根據(jù)經(jīng)驗(yàn)可知X(9,1)會(huì)被單獨(dú)分成一類:
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
轉(zhuǎn)載本文請(qǐng)聯(lián)系原作者獲取授權(quán),同時(shí)請(qǐng)注明本文來(lái)自孫月芳科學(xué)網(wǎng)博客。
鏈接地址:http://blog.sciencenet.cn/blog-582961-504552.html
總結(jié)
以上是生活随笔為你收集整理的php 聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php如何设置断点调试,使用 PHPSt
- 下一篇: 动态规划算法php,php算法学习之动态