聚類算法分析_第1頁
聚類算法分析_第2頁
聚類算法分析_第3頁
聚類算法分析_第4頁
聚類算法分析_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程名稱: 數(shù)據(jù)挖掘 實驗項目: 聚類算法分析研究 班 級: 學 號: 學生姓名: 聚類算法分析研究1 實驗環(huán)境以及所用到的主要軟件Windows Vista Weka3.6MATLAB R2009a2 實驗內(nèi)容描述聚類是對數(shù)據(jù)對象進行劃分的一種過程,與分類不同的是,它所劃分的類是未知的,故此,這是一個“無指導的學習” 過程,它傾向于數(shù)據(jù)的自然劃分。其中聚類算法常見的有基于層次方法、基于劃分方法、基于密度以及網(wǎng)格等方法。本文中對近年來聚類算法的研究現(xiàn)狀與新進展進行歸納總結。一方面對近年來提出的較有代表性的聚類算法,從算法思想。關鍵技術和優(yōu)缺點等方面進行分析概括;另一方面選擇一些典型的聚類算法和

2、一些知名的數(shù)據(jù)集,主要從正確率和運行效率兩個方面進行模擬實驗,并分別就同一種聚類算法、不同的數(shù)據(jù)集以及同一個數(shù)據(jù)集、不同的聚類算法的聚類情況進行對比分析。最后通過綜合上述兩方面信息給出聚類分析的研究熱點、難點、不足和有待解決的一些問題等。實驗中主要選擇了K均值聚類算法、FCM模糊聚類算法并以UCI Machine Learning Repository網(wǎng)站下載的IRIS和WINE數(shù)據(jù)集為基礎通過MATLAB實現(xiàn)對上述算法的實驗測試。然后以WINE數(shù)據(jù)集在學習了解Weka軟件接口方面的基礎后作聚類分析,使用最常見的K均值(即K-means)聚類算法和FCM模糊聚類算法。下面簡單描述一下K均值聚類

3、的步驟。K均值算法首先隨機的指定K個類中心。然后:(1)將每個實例分配到距它最近的類中心,得到K個類;(2)計分別計算各類中所有實例的均值,把它們作為各類新的類中心。重復(1)和(2),直到K個類中心的位置都固定,類的分配也固定。在實驗過程中通過利用Weka軟件中提供的simpleKmeans(也就是K均值聚類算法對WINE數(shù)據(jù)集進行聚類分析,更深刻的理解k均值算法,并通過對實驗結果進行觀察分析,找出實驗中所存在的問題。然后再在學習了解Weka軟件接口方面的基礎上對Weka軟件進行一定的擴展以加入新的聚類算法來實現(xiàn)基于Weka平臺的聚類分析。3 實驗過程3.1 K均值聚類算法3.1.1 K均值

4、聚類算法理論K均值算法是一種硬劃分方法,簡單流行但其也存在一些問題諸如其劃分結果并不一定完全可信。K均值算法的劃分理論基礎是(1)其中是劃分的聚類數(shù),是已經(jīng)屬于第類的數(shù)據(jù)集是相應的點到第類的平均距離,即(2)其中表示在數(shù)據(jù)集中的對象數(shù)。3.1.2 算法的基本過程任意選擇K個對象作為初始的類的中心;根據(jù)類中的平均值,將每個數(shù)據(jù)點 (重新)賦給最相近的類;更新類的平均值;不再發(fā)生變化,即沒有對象進行被重新分配時過程結束。3.1.3 算法代碼分析K均值聚類算法的代碼分析過程如下首先調(diào)用clust_normalize()函數(shù)將數(shù)據(jù)集標準化具體過程如下data=clust_normalize(data,

5、'range');下面是對K均值算法的初始化if max(size(param.c)=1, c = param.c; index=randperm(N); v=X(index(1:c),:);v = v + 1e-10; v0=X(index(1:c)+1,:);v0 = v0 - 1e-10;else v = param.c; c = size(param.c,1); index=randperm(N); v0=X(index(1:c)+1,:);v0 = v0 + 1e-10;end iter = 0;接著是迭代求解直到滿足要求的解或者達到最大的迭代值while prod(

6、max(abs(v - v0), iter = iter +1; v0 = v; for i = 1:c 這里是用來計算歐氏距離 dist(:,i) = sum(X - repmat(v(i,:),N,1).2,2); end 下面將分類結果賦值 m,label = min(dist'); distout=sqrt(dist); 下面計算分類中心 for i = 1:c index=find(label = i); if isempty(index) v(i,:) = mean(X(index,:); else ind=round(rand*N-1); v(i,:)=X(ind,:);

7、 end f0(index,i)=1; end J(iter) = sum(sum(f0.*dist); if param.vis clf hold on plot(v(:,1),v(:,2),'ro') colors='r.' 'gx' 'b+' 'ys' 'md' 'cv' 'k.' 'r*' 'g*' 'b*' 'y*' 'm*' 'c*' 'k*'

8、; for i=1:c index = find(label = i); if isempty(index) dat=X(index,:); plot(dat(:,1),dat(:,2),colorsi) end end hold off pause(0.1) end end保存求解結果result.cluster.v = v;result.data.d = distout;計算劃分矩陣 f0=zeros(N,c);for i=1:c index=find(label = i); f0(index,i)=1;end result.data.f=f0;result.iter = iter;res

9、ult.cost = J;3.1.4 實驗配置實驗過程配置比較簡單只需按照如下介紹即可。將路徑修改為MATLAB工具箱的相應路徑在次是“E:MATLABtoolboxFUZZCLUST”如下path(path,'E:MATLABtoolboxFUZZCLUST')選擇數(shù)據(jù)集在實驗中選擇了IRIS數(shù)據(jù)集,因此IRIS=1。在下面選擇哪個數(shù)據(jù)集只需將相應的值置為1其他兩個置為0。wine=0;iris=1;wisc=0;if wine load winedat.txt data=winedat(:,1:end-1); C=winedat(:,end);endif iris load

10、 iris data=iris(:,1:4); C=zeros(length(data),1); for i=1:3 C(find(iris(:,4+i)=1)=i; end endif wisc wisc數(shù)據(jù)預處理 wisc=wk1read('wisconsin.wk1'); NI=9; NT=length(wisc); data.X=wisc(:,11) wisc(:,2:10); data.X=sortrows(data.X,1); I,J=find(data.X(:,7)=0); data.X=data.X(I,:); I,J=find(data.X(:,1)=2);

11、data.X(I,1)=1; I,J=find(data.X(:,1)=4); data.X(I,1)=2; C=data.X(:,1); data=data.X(:,2:end); end 數(shù)據(jù)標準化data.X=data;data=clust_normalize(data,'range');下面的參數(shù)在FCM模糊聚類時用到param.m=2;如下參數(shù)是設置分類數(shù)即K=3param.c=3;param.val=1;param.vis=0;result=Kmeans(data,param);result=validity(result,data,param);d1,d2=max

12、(result.data.f');Cc=;for i=1:param.c Ci=C(find(d2=i); dum1=hist(Ci,1:param.c); dd1,dd2=max(dum1); Cc(i)=dd2;end3.1.5 實驗效果實驗中使用了UCI的IRIS數(shù)據(jù)集和WINE數(shù)據(jù)集,實驗的結果如下圖1) IRIS數(shù)據(jù)集實驗結果MATLAB實驗輸出的圖形如下圖 PCA圖圖 Conventional Sammon mapping 圖圖 Fuzzy Sammon mapping 圖并且可在實驗中得到MATLAB的算法評價指標如下表格 1 IRIS數(shù)據(jù)集算法評價指標PC1CENaN2

13、) WINE數(shù)據(jù)集實驗結果MATLAB實驗輸出的圖形如下圖 4 PCA圖圖 5 Conventional Sammon mapping 圖圖 6 Fuzzy Sammon mapping 圖并且可在實驗中得到MATLAB的算法評價指標如下表格 2 WINE數(shù)據(jù)集算法評價指標PC1CENaN將該算法在兩種不同數(shù)據(jù)集中的測試結果對比如下表格 3 不同數(shù)據(jù)集的算法指標對比KmeansPCCEIRIS1NaNWINE1NaN3.1.6 K均值聚類算法的相關特點該算法試圖找出使平方誤差值最小的K個劃分。當結果類是密集的,而類與類之間區(qū)分明顯時,它的效果較好。算法復雜度,其中是迭代次數(shù)。因此其可擴展性較好

14、,對大數(shù)據(jù)集處理有較高的效率。算法常以局部最優(yōu)結束。全局最優(yōu)要窮舉所有可能的劃分。缺點:不適合發(fā)現(xiàn)非凸面狀的類。不適合大小差別較大的類。對于噪聲和孤立點是敏感的,由于少量的該類數(shù)據(jù)對平均值產(chǎn)生較大的影響。3.2 FCM模糊聚類算法FCM算法也是一種基于劃分的聚類算法,它的思想就是使得被劃分到同一類的對象之間相似度最大,而不同類之間的相似度最小。模糊C均值算法是普通C均值算法的改進,普通C均值算法對于數(shù)據(jù)的劃分是硬性的,而FCM則是一種柔性的模糊劃分。在介紹FCM具體算法之前我們先介紹一些模糊集合的基本知識。3.2.1 FCM模糊聚類算法的理論1) 理論基礎-模糊集基本知識首先說明隸屬度函數(shù)的概

15、念。隸屬度函數(shù)是表示一個對象隸屬于集合的程度的函數(shù),通常記做,其自變量范圍是所有可能屬于集合的對象(即集合所在空間中的所有點),取值范圍是,即。表示完全隸屬于集合,相當于傳統(tǒng)集合概念上的。一個定義在空間上的隸屬度函數(shù)就定義了一個模糊集合,或者叫定義在論域上的模糊子集。在聚類的問題中,可以把聚類生成的類看成模糊集合,因此每個樣本點隸屬于每個類的隸屬度就是區(qū)間里面的值。2) FCM的算法理論1973年,Bezdek提出了該算法,并作為早期硬C均值聚類(HCM)方法的一種改進,命名為模糊C均值聚類簡稱FCM是一種目標函數(shù)法。假設將樣本空間要分為個類,則類中心集使下式的目標函數(shù)值最?。?)(4)且有其

16、中被稱為模糊隸屬度矩陣。表示的是數(shù)據(jù)隸屬于類中心的隸屬度。是模糊加權參數(shù),用于控制在模糊類間的程度依據(jù)參考的文獻中一般取值為15。應用拉格朗日乘法并基于上述約束可得到如下式 (5)且 (6)其中是到第類中心的歐氏距離,即。3.2.2 FCM模糊聚類算法的過程置初始化參數(shù)值,包含模糊加權參數(shù)值和聚類數(shù),以及迭代的次數(shù)和算法終止誤差。隨機化置初始化聚類的中心。計算隸屬度矩陣可通過(5)式計算得來。依據(jù)(6)式迭代計算聚類的中心。檢驗是否成立,成立則算法結束否則。3.2.3 算法代碼分析FCM聚類算法的代碼分析過程如下參數(shù)檢查并初始化默認參數(shù)if exist('param.m')=1

17、, m = param.m;else m = 2;end;if exist('param.e')=1, e = param.m;else e = 1e-4;end;N,n = size(X);Nf0,nf0 = size(f0); X1 = ones(N,1);初始化模糊劃分矩陣rand('state',0)if max(Nf0,nf0) = 1, % only number of cluster given c = f0; mm = mean(X); %mean of the data (1,n) aa = max(abs(X - ones(N,1)*mm);

18、 % v = 2*(ones(c,1)*aa).*(rand(c,n)-0.5) + ones(c,1)*mm; for j = 1 : c, xv = X - X1*v(j,:); d(:,j) = sum(xv*eye(n).*xv),2); end; d = (d+1e-10).(-1/(m-1); f0 = (d ./ (sum(d,2)*ones(1,c); else c = size(f0,2); fm = f0.m; sumf = sum(fm); v = (fm'*X)./(sumf'*ones(1,n); %end;f = zeros(N,c); iter =

19、 0; 該參數(shù)用來迭代計數(shù)迭代求解直到滿足實驗要求的精度while max(max(f0-f) > e iter = iter + 1; f = f0; 下面計算分類中心 fm = f.m; sumf = sum(fm); v = (fm'*X)./(sumf'*ones(1,n); for j = 1 : c, xv = X - X1*v(j,:); d(:,j) = sum(xv*eye(n).*xv),2); end; distout=sqrt(d); J(iter) = sum(sum(f0.*d); d = (d+1e-10).(-1/(m-1); f0 = (

20、d ./ (sum(d,2)*ones(1,c);endfm = f.m; sumf = sum(fm);求解結果保存result.data.f=f0;result.data.d=distout;result.cluster.v=v;result.iter = iter;result.cost = J;3.2.4 實驗配置實驗配置過程與K均值算法的實驗配置過程基本相同,只是在FCM模糊聚類算法實驗中要用到模糊隸屬度參數(shù),一般將其設置在15之間在實驗中設置如下param.m=2。也可以根據(jù)需要對其進行修改。3.2.5 實驗效果實驗中使用了UCI的IRIS數(shù)據(jù)集和WINE數(shù)據(jù)集,實驗的結果如下圖1

21、) IRIS數(shù)據(jù)集實驗結果MATLAB實驗輸出的圖形如下圖 7 PCA圖圖 8 Conventional Sammon mapping 圖圖 9 Fuzzy Sammon mapping 圖并且可在實驗中得到MATLAB的算法評價指標如下表格 4 IRIS數(shù)據(jù)集算法評價指標PC0.7420CE0.46822) WINE數(shù)據(jù)集實驗結果MATLAB實驗輸出的圖形如下圖 0 PCA圖圖 11 Conventional Sammon mapping 圖圖 12 Fuzzy Sammon mapping 圖并且可在實驗中得到MATLAB的算法評價指標如下表格 5 WINE數(shù)據(jù)集算法評價指標PC0.503

22、3CE0.8546將該算法在兩種不同數(shù)據(jù)集中的測試結果對比如下表格 6 不同數(shù)據(jù)集的算法指標對比FCMPCCEIRIS0.74200.4682WINE0.50330.85463.2.6 FCM模糊聚類算法特點FCM算法需要兩個參數(shù)一個是聚類數(shù)目,另一個是參數(shù)。一般來講要遠遠小于聚類樣本的總個數(shù),同時要保證。對于,它是一個控制算法的柔性的參數(shù),如果過大,則聚類效果會很次,而如果過小則算法會接近K均值聚類算法。算法的輸出是個聚類中心點向量和的一個模糊劃分矩陣,這個矩陣表示的是每個樣本點屬于每個類的隸屬度。根據(jù)這個劃分矩陣按照模糊集合中的最大隸屬原則就能夠確定每個樣本點歸為哪個類。聚類中心表示的是每

23、個類的平均特征,可以認為是這個類的中心代表。FCM算法是圖像分割使用最多的方法之一,它的成功主要歸功于為解決每個圖像像素的隸屬需要引入了模糊性。與K均值聚類相比較來說FCM能夠保留初始圖像的更多信息。FCM對孤立點和其他人造圖像非常敏感。3.3 算法評價在算法的評價指標中選擇指標PC和CE作為以上算法的評價指標。PC-Partition Coefficient 用來測量在類之間的重復數(shù)量,其由Beadek定義如下其中的是數(shù)據(jù)點在類中的隸屬度系數(shù)。CE-Classification Entropy 用來測量劃分類的模糊度,與PC有一定的相似性。其定義如下對于文中涉及到的K均值聚類算法和FCM模糊

24、聚類算法在同一數(shù)據(jù)集中的實驗對比如下對于數(shù)據(jù)集IRIS的對比如下表表格7 IRIS數(shù)據(jù)集下的評價指標對比IRISPCCEKmeans1NaNFCM0.74200.4682對于數(shù)據(jù)集WINE的對比如下表表格7 WINE數(shù)據(jù)集下的評價指標對比WINEPCCEKmeans1NaNFCM0.50330.8546有時也用所謂的文檔關聯(lián)來評測聚類方法。文檔關聯(lián)是指屬于同一個類別的任意兩個文檔之間所形成的“文檔對”關系。基于文檔關聯(lián)的聚類評測方法,其考察的基本對象就是“文檔對”。這里的文檔其實就是分類的數(shù)據(jù)對。3.4 基于weka的聚類分析3.4.1 數(shù)據(jù)的預處理從網(wǎng)站下載的WINE原始數(shù)據(jù)集wine.da

25、ta文件,而Weka軟件需要的是ARFF文件格式的數(shù)據(jù)。因此需要將數(shù)據(jù)轉(zhuǎn)換成Weka支持的ARFF文件格式的。轉(zhuǎn)換過程如下首先用記事本方式打開文件發(fā)現(xiàn)文件中的數(shù)據(jù)之間是以逗號來劃分的,因此可以將數(shù)據(jù)文件的名稱改為wine.csv。然后,打開Weka選擇Tools選項下的ArffViewer如下圖打開ArffViewer后選擇File選項下的Open彈出如下圖的打開窗口,在文件類型一欄選擇CSV data files(*.csv)項。然后找到相應的文件后單擊打開后如下圖接下來選擇File選項下的Save as 后彈出如下圖在文件名欄輸入相應的文件名后單擊保存即可得到相應的arff格式的數(shù)據(jù)集文件

26、。K均值算法只能處理數(shù)值型的屬性,遇到分類型的屬性時要把它變?yōu)槿舾蓚€取值0和1的屬性。WEKA將自動實施這個分類型到數(shù)值型的變換,而且WEKA會自動對數(shù)值型的數(shù)據(jù)作標準化。WEKA中的StringToWordVector過濾器能將ARFF文件中的文本數(shù)據(jù)轉(zhuǎn)換為空間向量模型,它同時擁有分詞、特征表示、特征 提取等功能。在Explorer中的Reprocess界面導入ARFF文件,選擇StringToWordVector過濾器,再設置相關參數(shù)。3.4.2 聚類過程進入Explorer中的Preprocess 界面單擊Open file后彈出如下圖的數(shù)據(jù)集選擇窗口,選擇WINE.arff數(shù)據(jù)集文件后

27、打開。然后可以在Filter下的choose中選擇需要的過濾器參數(shù)。接下來選擇Cluster選項界面,在Clusterer中選擇choose來選擇Weka中提供的聚類算法 Clusters下的SimpleKMeans,然后設置參數(shù)如下圖即為修改“numClusters”為3就是我們要將數(shù)據(jù)聚類為3類即K=3,下面的“seed”參數(shù)是要設置一個隨機種子,依此產(chǎn)生一個隨機數(shù),用來得到K均值算法中第一次給出的K個簇中心的位置,這里暫時讓它就為10,設置完成后單擊OK返回。然后選中“Cluster Mode”的“Use training set”,點擊“Start”按鈕,觀察右邊“Clusterer

28、output”給出的聚類結果如下= Run information =Scheme: Weka.clusterers.SimpleKMeans -N 3 -A "Weka.core.EuclideanDistance -R first-last" -I 500 -S 10Relation: WINEDATInstances: 177Attributes: 14 1.42E+01 1.71E+00 2.43E+00 1.56E+01 1.27E+02 2.80E+00 3.06E+00 2.80E-01 2.29E+00 5.64E+00 1.04E+00 3.92E+00

29、1.07E+03 1Test mode: evaluate on training data= Model and evaluation on training set =kMeans=Number of iterations: 7Missing values globally replaced with mean/modeCluster centroids: Cluster#Attribute Full Data 0 1 2 (177) (59) (49) (69)=1.42E+01 13.0006 13.7305 13.1612 12.26231.71E+00 2.3399 2.01 3.

30、3445 1.90862.43E+00 2.3662 2.4585 2.4347 2.23861.56E+01 19.5169 17.2814 21.4388 20.06381.27E+02 99.5876 106.5424 99.0204 94.04352.80E+00 2.2923 2.8486 1.6782 2.25263.06E+00 2.0234 2.9795 0.798 2.07622.80E-01 0.3623 0.2888 0.4508 0.36232.29E+00 1.5869 1.8937 1.1631 1.62575.64E+00 5.0553 5.4895 7.3451

31、 3.0581.04E+00 0.957 1.0666 0.6859 1.05573.92E+00 2.6043 3.1507 1.6902 2.78621.07E+03 745.678 1116.1017 627.551 512.82611 1.9435 1.0169 2.9796 2Clustered Instances0 59 ( 33%)1 49 ( 28%)2 69 ( 39%)也可以在左下角“Result list”中這次產(chǎn)生的結果上點右鍵,“View in separate window”在新窗口中瀏覽結果。3.4.3 結果分析首先我們注意到結果中有這么一行: 這是評價聚類好壞的

32、標準,數(shù)值越小說明同一類實例之間的距離越小。也許你得到的數(shù)值會不一樣;實際上如果把"seed"參數(shù)改一下,得到的這個數(shù)值就可能會不一樣。我們應該多嘗試幾個seed,并采納這個數(shù)值最小的那個結果。接下來"Cluster centroids:"之后列出了各個類中心的位置。對于數(shù)值型的屬性,類中心就是它的均值(Mean);分類型的就是它的眾數(shù)(Mode), 也就是說這個屬性上取值為眾數(shù)值的實例最多。對于數(shù)值型的屬性,還給出了它在各個類里的標準差(Std Devs)。最后的"Clustered Instances"是各個類中實例的數(shù)目及百分比

33、如下Clustered Instances0 59 ( 33%)1 49 ( 28%)2 69 ( 39%)實際的聚類各類中的實例分配如下Number of Instances class 1 59class 2 71class 3 48通過對比可以得出聚類的結果還是比較滿意的。為了觀察可視化的聚類結果,我們在左下方"Result list"列出的結果上右擊,點"Visualize cluster assignments"。彈出的窗口給出了各實例的散點圖。最上方的兩個框是選擇橫坐標和縱坐標,第二行的"color"是散點圖著色的依據(jù),默

34、認是根 據(jù)不同的類"Cluster"給實例標上不同的顏色,如下圖從圖中很容易看出聚類的結果由不同顏色區(qū)分??梢栽谶@里點"Save"把聚類結果保存成ARFF文件。在這個新的ARFF文件中,"instance_number"屬性表示某實例的編號,"Cluster"屬性表示聚類算法給出的該實例所在的類。3.4.4 實驗擴展聚類算法在數(shù)據(jù)挖掘里面被稱之為無監(jiān)督學習(unsupervised learning),這是與分類算法(supervised learning)相對的。所謂無監(jiān)督學習就是在預先不知道樣本類別的情況下,由

35、聚類算法來判別樣本的類別的一種學習方法。但是在Weka中還有一個問題就是所提供的聚類算法有限難以滿足具體需要,基于此問題在閱讀了相關文獻后發(fā)現(xiàn)可以通過擴展Weka的聚類算法來滿足具體的實驗需要。通過分析實驗的相關代碼可以得到Weka中聚類的一般過程主要如下1. 讀入需預測樣本2. 初始化聚類算法(并設置參數(shù))3. 使用聚類算法對樣本進行聚類4. 打印聚類結果大概過程可實現(xiàn)如下 Instances ins = null; Instances tempIns = null; SimpleKMeans KM = null; DistanceFunction disFun = null; try Fi

36、le file= new File("data.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); KM = new SimpleKMeans(); KM.setNumClusters(2); KM.buildClusterer(ins); tempIns = KM.getClusterCentroids(); System.out.println("CentroIds: " + tempIns); catch(Exc

37、eption e) e.printStackTrace(); 首先讀入樣本過程比較簡單可以調(diào)用ArffLoader()函數(shù)和setFile()函數(shù)以及getDataSet()函數(shù)等在構建聚類器時也是通過現(xiàn)有的類來實現(xiàn)的。SimpleKMean是最簡單的KMeans算法,因為聚類算法的核心是通過距離來得到類別(類間相異,類內(nèi)相似),所以需要有一個計算距離的公式常見的就是歐幾里得距離了。將SimpleKMean計算距離的方法默認為歐幾里得距離。Weka中提供了設置距離函數(shù)的接口setDistanceFunction(DistanceFunction df),可以方便我們設置自己的距離計算方法。在聚

38、類過程中將樣本的類別屬性放在里面是不符合常識的,因為樣本類別屬性包含了大量的類別信息,可能誘導聚類算法得到很好的效果。但是這與我們的初衷是相背離的,所以在聚類之前我們要記住刪除掉類別屬性。在第四步打印聚類結果是一個很簡單的信息,里面包括了聚類的幾個中心點。在寫程序時可以使用ClusterEvaluation類來打印更多的信息。3.4.5 擴展Weka算法在擴展之前Weka中的聚類算法如下圖顯然沒有實驗所需的FCM模糊聚類算法,因此需要通過擴展加入FCM聚類算法。了解Weka聚類器的相關接口,是在Weka中實現(xiàn)擴展聚類方法的基礎。Weakclusterers包里邊放的就是各種聚類算法以及聚類器接口和評估器接口,其中有K-means、EM、Cobweb、DBScan等算法,分析Weka的源代碼中可以得到,core包是Weka的核心,gui包是處理圖形界面等。最重要的是Weka.core包。該包中又有3個類是重中之重,實現(xiàn)首先就從這里入手。這3個類是Instances(實例集)類,Attribute(屬性)類和Instance(實例)類,Weka里邊的每個算法都會用到這3個類。聚類器類結構是實現(xiàn)聚類算法的另一個關鍵。在了解Weka聚類器的接口之后,就可以在Weka中設計與實現(xiàn)新的聚類分析方法。要把新編寫的聚類算法容入Weka中,需要相應的Waka中的包和Java的包。下面介紹

溫馨提示

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

最新文檔

評論

0/150

提交評論