模糊聚類分析_第1頁
模糊聚類分析_第2頁
模糊聚類分析_第3頁
模糊聚類分析_第4頁
模糊聚類分析_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄1引言:22 理論準備:22.1 模糊集合理論22.2模糊C均值聚類(FCM)32.3 加權模糊C均值聚類(WFCM)33 聚類分析實例43.1數據準備43.1.1數據表示43.1.2數據預處理43.1.3 確定聚類個數53.2 借助clementine軟件進行K-means聚類63.2.1 樣本在各類中集中程度73.2.2 原始數據的分類結果73.2.3結果分析83.3模糊C均值聚類83.3.1 數據集的模糊C劃分83.3.2 模糊C均值聚類的目標函數求解方法93.3.3 MATLAB軟件輔助求解參數設置93.3.4符號表示103.3.5代碼實現過程103.3.6 FCM聚類分析1034

2、 WFCM算法133.4.1 WFCM聚類結果展示133.4.2樣本歸類143.4.3歸類代碼實現154結論165 參考文獻176 附錄17模糊聚類與非模糊聚類比較分析摘要:聚類分析是根據樣本間的相似度實現對樣本的劃分,屬于無監督分類。傳統的聚類分析是研究“非此即彼”的分類問題,分類結果樣本屬于哪一類很明確,而很多實際的分類問題常伴有模糊性,即它不僅僅是屬于一個特定的類,而是“既此又彼”。因此為了探究模糊聚類與非模糊聚類之間聚類結果的差別,本文首先采用系統聚類方法對上市公司132支股票數據進行聚類,確定比較合理的聚類數目為11類,然后分別采用K-means聚類與模糊聚類方法對股票數據進行聚類分

3、析,最終得出模糊聚類在本案例中比K-means聚類更符合實際。 關鍵字:模糊集合,K-means聚類,FCM聚類,WFCM聚類1引言:聚類分析是多元統計分析的方法之一,屬于無監督分類,是根據樣本集的內在結構,按照樣本之間相似度進行劃分,使得同類樣本之間相似性盡可能大,不同類樣本之間差異性盡可能大。傳統的聚類分析屬于硬化分,研究對象的性質是非此即彼的,然而,現實生活中大多數事物具有亦此亦彼的性質。因此傳統的聚類分析方法往往不能很好的解決具有模糊性的聚類問題。為此,模糊集合理論開始被應用到分類領域,并取得不錯成果。本文的研究目的是通過對比傳統聚類和模糊聚類的聚類結果,找出二者之間的不同之處,并說明

4、兩種聚類分析方法在實例中應用的優缺點。2 理論準備:2.1 模糊集合理論模糊集合定義:設 為論域,則稱由如下實值函數A : ® 0,1 , u ® A ( u )所確定的集合 A 為 上的模糊集合,而稱A 為模糊集合A 的隸屬函數,A ( u )稱為元素 u 對于A 的隸屬度。若mA(u) =,則認為u完全屬于A ; 若mA(u) =,則認為u完全不屬于A,模糊集合是經典集合的推廣。2.2模糊C均值聚類(FCM)預先給定類別數c,把含有n個樣本的數據集分成c個模糊類,用每個類的類別中心 Vj 代表該類,通過反復迭代運算,逐步降低目標函數的誤差值,當目標函數收斂時,聚類完成。

5、目標函數: 約束條件: ij0,1,i,j2.3 加權模糊C均值聚類(WFCM)算法過程與FCM類似,只是目標函數不同,WFCM算法考慮了各樣本點對分類的重要性,在FCM算法中加入了權值pi,pi稱為樣本點的密度,本文中pi采用徑向基函數方法來確定,當樣本點x遠離類中心xc時函數取值很小,此時該樣本點對分類的重要性比較小。最常用的徑向基函數是高斯核函數 ,形式為 目標函數: 約束條件:ij0,1, i,j, 3 聚類分析實例3.1數據準備3.1.1數據表示本文采用數據是上市公司2000-2003年共4年132支股票31個變量的數據進行聚類分析,表1是各變量所代表的含義。表1 數據表示X1每股收

6、益X2每股凈資產······X30凈利潤X31未分配利潤3.1.2數據預處理為了排除各因素變量的單位不同以及數量級間的懸殊差別帶來的影響,盡可能的反映實際情況,需要對數據進行無量綱化處理。常用的處理方法有:標準化處理方法和極值處理方法。以下均采用“標準化”處理法。即取 (i=1,2,···,528;j=1,2,···,31)其中xij*為標準觀測值,其平均值和均方差分別為0和1。式中xj(j=1,2···31)為第j項指標原始觀測值的平均值,sj

7、(j=1,2,···,31)為第j項指標原始觀測值的均方差。3.1.3 確定聚類個數如前文所述,聚類分析是無監督分類,分類之前并不知道聚多少類是合適的,所以為了保證分類的合理性,首先借助SPSS軟件對數據進行系統聚類以確定合理的分類數。譜系聚類圖結果顯示如下,我們初步選擇在距離為5處截取,確定合理聚類數為11類。圖1 系統聚類譜系圖3.2 借助clementine軟件進行K-means聚類為了實現傳統聚類與模糊聚類結果的對比,這里首先對數據做了傳統的K均值聚類,具體的操作流程如下圖2所示圖2 clementine實現K-means過程3.2.1 樣本在各類中集中程

8、度對模型結果進行查看,得到各類中所包含的樣本個數如下圖3所示,發現樣本主要集中在第5,7,8,9,10類。圖3 樣本在各類中集中程度3.2.2 原始數據的分類結果圖4的最后兩列分別是樣本所屬類別和樣本與該類別的類中心之間的距離,如對于第1個樣本,屬于第1類,與類中心的距離是0.394 。圖4 K-means聚類結果3.2.3結果分析分析總結上述K-means聚類結果:對這528個記錄的聚類結果中,在第1,3,5,11類中,樣本的個數都比較少,其中第11類僅有一個樣本,而第7,8,9類中樣本數分別高達93,181,97個,這些類中樣本過于集中,說明得到的結果不是很理想,因此嘗試模糊狀態下對數據進

9、行聚類分析。3.3模糊C均值聚類3.3.1 數據集的模糊C劃分設待分數據集X=x1,x2,x528表示對上市公司股票的528次觀測數據,xk=xk1,xk2,xk31是第k個樣本的31個指標向量的取值集合。對數據集進行模糊聚類首先要產生X的模糊c劃分,由于聚類屬于無監督分析,需要事先設定好聚類個數,這里為了和傳統聚類分析結果做出比較,把數據模糊化為11個模糊子集X1,X2,X11,且滿足:X1X2X11=X; XiXj=,1ij11;Xi,XiX,1i11。ik=Xixk表示樣本xk屬于模糊子集Xi的程度,其中ik0,1,因此模糊劃分可以用隸屬度矩陣U=ik表示。3.3.2 模糊C均值聚類的目

10、標函數求解方法針對上述2.2部分中模糊C均值聚類算法的目標函數和約束條件,本文采用拉格朗日乘數法求解該數學規劃問題,分別求得隸屬度 和類中心 表達式如下: 3.3.3 MATLAB軟件輔助求解參數設置調用MATLAB軟件中自帶的fcm函數對上述數學規劃問題進行求解,其中fcm函數中一些參數設置如表2所示。表2 參數設置參數設置最大迭代次數100終止誤差1.00E-05模糊度參數2聚類個數113.3.4符號表示表3 符號表示符號表示Center類中心U隸屬度矩陣obj_fcn目標函數值Data樣本數據3.3.5代碼實現過程導入數據:Data1=xlsread(data)調用函數: center,

11、U,obj_fcn = fcm(data1,11)3.3.6 FCM聚類分析Matlab結果輸出如圖8,9,10,11所示,分別得到各樣本的初始化隸屬度矩陣,樣本各類的類中心,最終的樣本隸屬度,目標函數的更新過程。樣本模糊化圖8 初始化隸屬度矩陣截圖類中心(center)圖9 類中心隸屬度矩陣(U)圖10 隸屬度矩陣目標函數(obj_fcn)圖11目標函數值圖8,9,10分別是模糊C均值聚類最終形成的類中心,隸屬度矩陣,目標函數。由圖8可以看出各類的類中心相差不大,同時由圖9可以看出隸屬度矩陣幾乎沒有差別,從圖9中可以看出對目標函數,在3次迭代之后基本趨于平穩狀態,目標函數值為1487.6,綜

12、合上述分析認為該聚類方法效果不好。在嘗試解決這個問題的過程中,嘗試修改fcm函數的模糊度參數,迭代次數,誤差項仍沒有取得較好結果,隨后為了避免單只股票4年的數據相似度太大而導致聚類效果差,分別抽取2000年到2003年各年的132只股票逐年進行分析,仍舊沒有得出好的聚類結果,所以文中沒有進行展示。考慮到各樣本點對聚類的結果產生的影響不同,下文嘗試改進的加權模糊C均值聚類方法。34 WFCM算法由于MATLAB中沒有自帶WFCM函數,需要自己進行編程,數據的模糊化過程與模糊C均值聚類中相同,這里不再贅述。下面是WFCM運行的結果,具體代碼實現過程見附錄A。3.4.1 WFCM聚類結果展示樣本模糊

13、化圖12 樣本初始化隸屬度矩陣對比FCM 聚類最終結果,可以得出在對目標函數進行加權之后,隸屬度矩陣和類中心都發生了明顯的改善,說明考慮了不同樣本對聚類結果的影響之后聚類結果更好。隸屬度矩陣圖13 WFCM隸屬度矩陣類中心圖14 WFCM類中心3.4.2樣本歸類計算出U , V ,obj_fcn之后,對樣本進行明確的歸類,這一過程可以通過下面兩個判定準則來確定: 判定準則 1如果 dik=minjdjk (1 j c), 則將樣本Xk歸屬于第 i 類。這個判定準則的意義是樣本與哪一個聚類中心最接近,就將它歸到哪一類。 判定準則 2如果 uik=maxjujk (1 j c), 這個判定準則的意

14、義是樣本對哪一個類的隸屬度最大,就將它歸到哪一類。 3.4.3歸類代碼實現下面我們以判定準則2來劃分樣本的類別,代碼過程如下:圖15 分類代碼3.4.4 樣本歸類結果及分析運行圖11中代碼,得到結果如圖16所示:圖16 樣本歸類結果由圖16可以看出,最終樣本歸為10類,除了第2和9類中樣本比較多,其他各類中樣本分布比較均勻,聚類結果可以接受。4結論非模糊聚類直接根據樣本之間相似性進行歸類,而模糊聚類是根據樣本的隸屬度矩陣和相似性矩陣進行歸類,其中樣本Xk隸屬于i類的程度即隸屬度,可在 0 到 1 之間取值,而不是如傳統聚類算法中,樣本 Xk隸屬于類的隸屬度只有兩種取值1 或 0, 即屬于與不屬

15、于。這樣,樣本Xk不再明確地屬于某一類,而是對于每一個類別都有一個隸屬度,隸屬度的數值越大說明樣本隸屬于該類的程度越大,反之則越小。模糊聚類的這種模糊劃分描述了樣本聚類過程中的模糊現象,從而可以獲得更為合理的聚類結果。對比K-means聚類結果圖3和WFCM聚類結果圖13,圖16,發現非模糊聚類結果中樣本集中在第6,7,8,9類中,而在加入了模糊隸屬度之后,模糊聚類結果有了各個樣本屬于11個類的程度,按隸屬度最大原則對樣本進行歸類之后發現除了第5類之外,樣本在各類中的分布相對更加均勻,說明聚類目的基本達到.具體到本文所采用的股票數據的聚類結果,可以看出模糊聚類比傳統的聚類結果更為合理,因此模糊

16、聚類的優勢得到充分體現。5 參考文獻1 Zadeh L A.Fuzzy Sets.Information and Control.1965,8:338-353.2 Chan K P , Cheung Y S. Clustering of clustersJ . Pattern Recognition ,1992 ,25(2) :211 2173 楊綸標,高英儀 學原理及應用 華南理工大學出版社 2005.6 52-774 姚曉紅.模糊聚類分析方法在甘肅農業經濟類型劃分中的應用D.蘭州交通大學,2013.5 廖芹,郝志峰 數據挖掘與數學建模 國防工業出版社 20096 高新波 模糊聚類分析及其應

17、用 西安電子科技大學也出版社 20047 葉海軍.模糊聚類分析技術及其應用研究D.合肥工業大學,20068 張秀梅,王濤 模糊聚類分析方法在學生成績評價中的應用J渤海大學學報:自然科學版,2007,28(2) 169-172.9 湯效琴,戴汝源 數據挖掘中聚類分析的技術方法 寧夏大學學報 2006.76 附錄附錄A WFCM代碼function center, U, obj_fcn = KFCMClust(data, cluster_n, kernel_b,options) error(nargchk(2,4,nargin); %檢查輸入參數個數 data_n = size(data, 1);

18、 % 求出data的第一維(rows)數,即樣本個數 in_n = size(data, 2); % 求出data的第二維(columns)數,即特征值長度,目前沒有用 % 默認操作參數 default_b = 150; % 高斯核函數參數 default_options = 2; % 隸屬度矩陣U的指數 100; % 最大迭代次數 1e-5; % 隸屬度最小變化量,迭代終止條件 1; % 每次迭代是否輸出信息標志 if nargin = 2, kernel_b = default_b; options = default_options; elseif nargin = 3, options

19、 = default_options; else if length(options) < 4, tmp = default_options; tmp(1:length(options) = options; options = tmp; end nan_index = find(isnan(options)=1); %將denfault_options中對應位置的參數賦值給options中不是數的位置. options(nan_index) = default_options(nan_index); if options(1) <= 1, %如果options中的指數m不超過1報

20、錯 error('The exponent should be greater than 1!'); end end %將options 中的分量分別賦值給四個變量; expo = options(1); % 隸屬度矩陣U的指數 max_iter = options(2); % 最大迭代次數 min_impro = options(3); % 隸屬度最小變化量,迭代終止條件 display = options(4); % 每次迭代是否輸出信息標志 obj_fcn = zeros(max_iter, 1); % 初始化輸出參數obj_fcn U = initkfcm(cluste

21、r_n, data_n) % 初始化模糊分配矩陣% 初始化聚類中心:從樣本數據點中任意選取cluster_n個樣本作為聚類中心。 index = randperm(data_n); % 對樣本序數隨機排列 center_old = data(index(1:cluster_n),:); % 選取隨機排列的序數的前cluster_n個 for i = 1:max_iter, %在第k步循環中改變聚類中心ceneter,和分配函數U的隸屬度值; U, center, obj_fcn(i) = stepkfcm(data,U,center_old, expo, kernel_b); if displ

22、ay, fprintf('KFCM:Iteration count = %d, obj. fcn = %fn', i, obj_fcn(i); end center_old = center; % 用新的聚類中心代替老的聚類中心 % 終止條件判別 if i > 1, if abs(obj_fcn(i) - obj_fcn(i-1) < min_impro, break; end, end end iter_n = i; % 實際迭代次數 obj_fcn(iter_n+1:max_iter) = ; % 子函數 function U = initkfcm(cluste

23、r_n, data_n) % 初始化fcm的隸屬度函數矩陣 U = rand(cluster_n, data_n); col_sum = sum(U); U = U./col_sum(ones(cluster_n, 1), :); % 子函數 function U_new,center_new,obj_fcn = stepkfcm(data,U,center,expo,kernel_b) % 模糊C均值聚類時迭代的一步 % 輸入: feature_n = size(data,2); % 特征維數 cluster_n = size(center,1); % 聚類個數 mf = U.expo; % 隸屬度矩陣進行指數運算(c行n列) % 計算新的聚類中心; KernelMat = gaussKernel(center,data,kernel_b); % 計算高斯核矩陣(c行n列) num = mf.*KernelMat * data; % 式(5.15)的分子(c行p列,p為特征維數) den = sum(mf.*KernelMat,2); % 式子(5.15)的分子,(c行,1列,尚未擴展) center_new = num./(den*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論