數學建模學習筆記之評價問題聚類分析法

數學建模學習筆記之評價問題聚類分析法

物以類聚、人以羣分。

聚類分析是一個很大的概念,顯然根據分類的依據不同會出現很多很多聚類的方法。例如K-Means 、Sequential Leader、Model Based Methods、Density Based Methods、Hierarchical Methods、EM、蟻羣算法等等。各類算法之間並沒有優劣之分,只存在選擇是否恰當問題。數學建模主要注重結論,所以這裏就重點講解其中比較有名的K-Means聚類和它在SPSS軟件上的實現。

聚類:把各不相同的個體分割爲有更多相似性子集合,產生的子集叫做

應用領域:客戶價值分析、文本分類、數據處理等

K-Means聚類(K-均值)分析

算法步驟

  1. 隨機選取K個樣本作爲類中心
  2. 計算各樣本與各類之間的距離
  3. 將各樣本歸於最近的類中心點
  4. 求各類樣本的均值,作爲新的類中心
  5. 判定:若類中心不再發生變動或到達迭代次數,算法結束,否則返回第二步。

聚類指標

外部指標:將聚類結果與參考模型進行比較

a:集合SS包含在聚類結果中屬於相同簇在參考模性中也屬於相同簇的樣本對。

b:集合SD包含在聚類結果中屬於相同簇在參考模性中屬於不同簇的樣本對。

c:集合DS包含在聚類結果中屬於不同簇在參考模性中屬於相同簇的樣本對。

d:集合DD包含在聚類結果中屬於不同簇在參考模性中屬於不同簇的樣本對。

Jaccard係數
JC=aa+b+c JC=\frac{a}{a+b+c}
FM指數
FMI=aa+baa+c FMI=\sqrt[]{\frac{a}{a+b}*\frac{a}{a+c}}
Rand指數
RI=2(a+d)m(m1) RI=\frac{2(a+d)}{m(m-1)}
上述指標在[0,1]區間內越大越好。

內部指標:不依賴於任何參考模型,直接考察聚類結果

avg©:簇C內樣本間平均距離

diam©:簇C間樣本間的最遠距離

dmin:簇Ci與Cj最近樣本間的距離

dcem:簇Ci與Cj中心點間的距離

DB指數越小越好:
DBI=1ki=1kmaxij(avg(Ci)+avg(Cj)dcem(Ci)(Cj)) DBI=\frac{1}{k}\sum_{i=1}^{k}{max_{i\neq j}(\frac{avg(C_i)+avg(C_j)}{d_{cem}(C_i)(C_j)})}
緊密性(CP):各樣本到聚類中心的距離

間隔性(SP):各類中心間平均距離

代碼實現

MATLAB中關於聚類的函數有很多,k-means應該是其中比較簡單一種

x = [1 2 6 8 13]';    % 原始數據
opts = statset('Display','final');  % 顯示每次聚類的最終結果
% startset產生一個複雜的struct,參數‘display’可選有off/iter/final

idx = kmeans(x,3,'Distance','city','Replicates',5,'Options',opts)

% 將原始的5個點聚爲3類,距離採用絕對值距離,重複聚類5次
%Distance’:聚類距離的度量方式  Start’:迭代初始點的選取方式
%‘Replicates’:選取不同的初始點進行計算的次數,默認值爲1
%‘Options’:迭代的方式,需要創建一個statset變量

%****************************繪製聚類輪廓圖*********************************
[S, H] = silhouette(x,idx)    % 繪製輪廓圖,並返回輪廓值向量S和圖形句柄H

SPSS使用

案例·對下表中10個省份進行聚類

img

第一步:打開spss>文件>打開>數據

img

第二步:分析>分類>K-平均值聚類>把依據的指標值導入變量,地區導入標註個案,填寫聚類數,勾選迭代與分類

第三步:選項>勾選要查看的結果/迭代選擇最大迭代次數

img

點確定,就結束了。參考結果如下:

img

總結

K-Means 聚類是一種比較典型的劃分聚類方法,其代碼簡單步驟也比較容易懂。但由於其可選地方不多,而使用系統聚類也就是層次聚類的方法,通過畫出的樹狀圖來判斷聚類就更加方便。具體SPSS方法和k-means差不多,MATLAB實現代碼和教學視頻我整理了下手邊資料,有興趣可以下載

https://download.csdn.net/download/yuanjiteng/11516954

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章