日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

度量相似性数学建模_【数学建模】day09-聚类分析

發布時間:2025/4/5 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 度量相似性数学建模_【数学建模】day09-聚类分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.

多元分析之聚類分析。

聚類分析是一種定量方法,從數據的角度,對樣本或指標進行分類,進而進行更好的分析。

分為Q型聚類和R型聚類。

1.

Q型聚類分析是對樣本進行分類。有若干樣本,我們把這些樣本分成幾類,每一類中的樣本之間是“相似”的。

1)樣本的相似性度量

樣本之間的距離來描述樣本之間的相似性。

常用的有絕對值距離、歐氏距離。使用歐氏距離必須標準化處理,但避免不了變量的多重相關性。

解決:使用馬氏距離( Mahalanobis)。

式子中,x、y是來自總體Z兩個樣本(向量)。∑是Z的協方差矩陣。

2)類與類之間的相似性度量

如何衡量兩個類之間的相似度。

常用的有:

最短距離法:兩類中最近兩點之間的距離。

最長距離法:兩類中最遠兩點之間的距離。

重心法:兩類數據重心的距離。

類平均法:兩類所有兩兩點之間距離的平均。

離差平方和法:

3)Q型聚類分析以及實現

假設有w1,w2,w3…w7這些樣本點,Q型聚類就是完成下圖:

圖中,f坐標代表“平臺高度”,實際上是距離值。相同平臺高度下各自分為兩類。

如若分成3類,則在f3高度下,分為{w7},{w6,w5,w4},{w3,w2,w1}三類。

Q型聚類步驟:

1 )計算n個樣本點兩兩之間的距離dij ,記為矩陣D = (dij)(n*n);

2)首先構造n個類,每一個類中只包含一個樣本點,每一類的平臺高度均為零

3)合并距離近的兩類為新類,并且以這兩類間的距離值作為聚類圖中的平臺高 度;

4)計算新類與當前各類的距離,若類的個數已經等于 1,轉入步驟 5),否則,回 到步驟 3);

5)畫聚類圖;

6)決定類的個數和類。

4) MATLAB實現Q型聚類分析

相關MATLAB函數如下,需要查詢下面。

5)一個使用例子:

解決:

1 clc,clear2 a = [1,0;1,1;3,2;4,3;2,5];3 y = pdist(a,'cityblock') %計算絕對值距離4 yc =squareform(y);5 z = linkage(y) %最短距離法產生聚類樹6

7 [h,t] = dendrogram(z) %畫聚類圖命令8 T = cluster(z,'maxclust',3) %把對象劃分為3類9 for i = 1:3

10 tm = find(T == i);%返回第i類對象11 tm = reshape(tm,1,length(tm));%編程行向量12 fprintf('第%d類對象有%s\n',i,int2str(tm));13 end

聚類圖如下:

產生聚類樹的z = linkage(y)得到:

這是一個(m-1)*3的矩陣,m是樣例數。

1和2連接,平臺高度是1;1和2連接后,新樣例做第6點(m+j)。

3和4連接,平臺高度是2;做第7點。

6和7連接,平臺高度3;做第8點。

5和8連接。

若分成三類,打印結果如下:

3.

R型聚類。

R型聚類是更常用的。影響指標有若干,但這些影響因素(自變量)之間可能有相關性,把比較相關的聚成一類,只選用其中的一個因素來代表該類,從而對問題做出簡化。

Q與R的對比:

Q是對樣本進行聚類,通過樣本之間的距離,結果是把各個樣本分堆。

R是要最自變量進行聚類,通過自變量之間的相關系數(這個計算是根據樣本計算的),進而對自變量之間的相關性做出分析,相關性大的自變量分在一類,結果是把自變量分堆。

1) 樣本之間的距離

采用取Q型相同的方法。

2) 兩類之間的距離

r為相關系數。這些操作都是基于相關系數的。

3)具體例子:

計算如下:

1 clc,clear2 a = textread('ch.txt')3 d = 1 - abs(a); %相關系數轉距離4 d = tril(d); %提出d矩陣的下三角部分5 b = nonzeros(d);%去掉d的06 b = b';

7 z = linkage(b,'complete') %最大距離,產生聚類樹8 y = cluster(z,'maxclust',2) %變量分為2類9 ind1 = find(y == 1);10 ind1 = ind1'11 ind2 = find(y == 2);12 ind2 = ind2'13 dendrogram(z) %畫聚類圖

產生聚類圖如下:

通過聚類圖,可以看出,人體的變量大體可以分為兩類:

一類反映人高、矮的變量, 如上體長,手臂長,前腰節高,后腰節高,總體長,身高,下體長;

另一類是反映人體 胖瘦的變量,如胸圍,頸圍,總肩圍,總胸寬,后背寬,腰圍,臀圍。

總結

以上是生活随笔為你收集整理的度量相似性数学建模_【数学建模】day09-聚类分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。