基于weka的數(shù)據(jù)聚類分析實(shí)驗(yàn).doc_第1頁
基于weka的數(shù)據(jù)聚類分析實(shí)驗(yàn).doc_第2頁
基于weka的數(shù)據(jù)聚類分析實(shí)驗(yàn).doc_第3頁
基于weka的數(shù)據(jù)聚類分析實(shí)驗(yàn).doc_第4頁
基于weka的數(shù)據(jù)聚類分析實(shí)驗(yàn).doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Weka的數(shù)據(jù)聚類分析實(shí)驗(yàn)姓名:覃麗萍 專業(yè):計(jì)算機(jī)應(yīng)用技術(shù) 學(xué)號(hào):20610020471. 實(shí)驗(yàn)基本原理及目的聚類分析中的“類”(cluster)和前面分類的“類”(class)是不同的,對(duì)cluster更加準(zhǔn)確的翻譯應(yīng)該是“簇”。聚類的任務(wù)是把所有的實(shí)例分配到若干的簇,使得同一個(gè)簇的實(shí)例聚集在一個(gè)簇中心的周圍,它們之間距離的比較近;而不同簇實(shí)例之間的距離比較遠(yuǎn)。對(duì)于由數(shù)值型屬性刻畫的實(shí)例來說,這個(gè)距離通常指歐氏距離。在本實(shí)驗(yàn)中,我們對(duì)前面的“bank-data”作聚類分析,使用最常見的K均值(K-means)算法。下面我們簡(jiǎn)單描述一下K均值聚類的步驟。K均值算法首先隨機(jī)的指定K個(gè)簇中心。然后:(1)將每個(gè)實(shí)例分配到距它最近的簇中心,得到K個(gè)簇;(2)計(jì)分別計(jì)算各簇中所有實(shí)例的均值,把它們作為各簇新的簇中心。重復(fù)(1)和(2),直到K個(gè)簇中心的位置都固定,簇的分配也固定。本次實(shí)驗(yàn)的目的,是通過利用Weka中提供的simpleKmeans方法對(duì)“bank-data”進(jìn)行聚類分析,更深刻的理解k均值算法,并通過對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行觀察分析,找出實(shí)驗(yàn)中所存在的問題。2. 數(shù)據(jù)的準(zhǔn)備及預(yù)處理原始數(shù)據(jù)“bank-data.xls”是excel文件格式的數(shù)據(jù),需要轉(zhuǎn)換成Weka支持的ARFF文件格式的。轉(zhuǎn)換方法:在excel中打開“bank-data.xls”,選擇菜單文件另存為,在彈出的對(duì)話框中,文件名輸入“bank-data”,保存類型選擇“CSV(逗號(hào)分隔)”,保存,我們便可得到“bank-data.csv”文件;然后,打開Weka的Exporler,點(diǎn)擊Open file按鈕,打開剛才得到的“bank-data.csv”文件,點(diǎn)擊“save”按鈕,在彈出的對(duì)話框中,文件名輸入“bank-data.arff”,文件類型選擇“Arff data files(*.arff)”,這樣得到的數(shù)據(jù)文件為“bank-data.arff”。K均值算法只能處理數(shù)值型的屬性,遇到分類型的屬性時(shí)要把它變?yōu)槿舾蓚€(gè)取值0和1的屬性。WEKA將自動(dòng)實(shí)施這個(gè)分類型到數(shù)值型的變換,而且WEKA會(huì)自動(dòng)對(duì)數(shù)值型的數(shù)據(jù)作標(biāo)準(zhǔn)化。因此,對(duì)于ARFF格式的原始數(shù)據(jù)“bank-data.arff”,我們所做的預(yù)處理只是刪去屬性“id”,修改屬性“children”為分類型。 修改過程如下:在Ultredit中打開“bank-data.arff”,將attribute children numeric改成如下:圖1 修改children為分類型這樣我們最終得到的數(shù)據(jù)文件為“bank-data.arff”,含600條實(shí)例。3. 實(shí)驗(yàn)過程及結(jié)果截圖用“Explorer”打開剛才得到的“bank-data.arff”,并切換到“Cluster”。點(diǎn)“Choose”按鈕選擇“SimpleKMeans”,這是WEKA中實(shí)現(xiàn)K均值的算法。點(diǎn)擊旁邊的文本框,修改“numClusters”為6,說明我們希望把這600條實(shí)例聚成6類,即K=6。下面的“seed”參數(shù)是要設(shè)置一個(gè)隨機(jī)種子,依此產(chǎn)生一個(gè)隨機(jī)數(shù),用來得到K均值算法中第一次給出的K個(gè)簇中心的位置。我們不妨?xí)簳r(shí)讓它就為10。選中“Cluster Mode”的“Use training set”,點(diǎn)擊“Start”按鈕,觀察右邊“Clusterer output”給出的聚類結(jié)果如下:圖2 實(shí)驗(yàn)結(jié)果也可以在左下角“Result list”中這次產(chǎn)生的結(jié)果上點(diǎn)右鍵,“View in separate window”在新窗口中瀏覽結(jié)果。4. 實(shí)驗(yàn)結(jié)果分析4.1 實(shí)驗(yàn)結(jié)果下面對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行解釋。觀察圖1,首先我們注意到結(jié)果中有這么一行:Within cluster sum of squared errors: 1604.7416693522332這是評(píng)價(jià)聚類好壞的標(biāo)準(zhǔn),數(shù)值越小說明同一簇實(shí)例之間的距離越小。也許你得到的數(shù)值會(huì)不一樣;實(shí)際上如果把“seed”參數(shù)改一下,得到的這個(gè)數(shù)值就可能會(huì)不一樣。我們應(yīng)該多嘗試幾個(gè)“seed”,并采納這個(gè)數(shù)值最小的那個(gè)結(jié)果。例如我讓“seed”取100,就得到:Within cluster sum of squared errors: 1555.6241507629218我們?cè)撊『竺孢@個(gè)。當(dāng)然再嘗試幾個(gè)“seed”,這個(gè)數(shù)值可能會(huì)更小。接下來“Cluster centroids:”之后列出了各個(gè)簇中心的位置。對(duì)于數(shù)值型的屬性,簇中心就是它的均值(Mean),如cluster0的數(shù)值型變量age的均值37.1299;分類型的就是它的眾數(shù)(Mode),如cluster0的分類型變量children的眾數(shù)為3,也就是說這個(gè)屬性上取值為眾數(shù)值3(有3個(gè)孩子)的實(shí)例最多。對(duì)于數(shù)值型的屬性,還給出了它在各個(gè)簇里的標(biāo)準(zhǔn)差(Std Devs)。 最后的“Clustered Instances”是各個(gè)簇中實(shí)例的數(shù)目及百分比。為了觀察可視化的聚類結(jié)果,我們?cè)谧笙路健癛esult list”列出的結(jié)果上右擊,點(diǎn)“Visualize cluster assignments”。彈出的窗口給出了各實(shí)例的散點(diǎn)圖。最上方的兩個(gè)框是選擇橫坐標(biāo)和縱坐標(biāo),第二行的”color”是散點(diǎn)圖著色的依據(jù),默認(rèn)是根據(jù)不同的簇“Cluster”給實(shí)例標(biāo)上不同的顏色。圖3 實(shí)驗(yàn)結(jié)果可視化可以在這里點(diǎn)“Save”把聚類結(jié)果保存成ARFF文件。在這個(gè)新的ARFF文件中,“instance_number”屬性表示某實(shí)例的編號(hào),“Cluster”屬性表示聚類算法給出的該實(shí)例所在的簇,如下圖4。圖4 結(jié)果的arff文件4.2 存在的問題在本次實(shí)驗(yàn)中,我用了不同的“seed”值對(duì)數(shù)據(jù)進(jìn)行了三階段的實(shí)驗(yàn)分析:第一階段不斷增大seed值,直到為實(shí)例數(shù)目600;通過觀察第一階段的實(shí)驗(yàn)結(jié)果,找到兩個(gè)最小值點(diǎn),在第二階段和第三階段中,在最小值點(diǎn)seed附近不斷改變seed值,以逼近可能最小的“Within cluster sum of squared errors”值。我把部分實(shí)驗(yàn)結(jié)果整理如下表:表1 實(shí)驗(yàn)結(jié)果分析我們知道,“Within cluster sum of squared errors”值越小說明同一簇實(shí)例之間的距離越小,聚類的結(jié)果也就越好。從表中我們可以看出“Within cluster sum of squared errors”的最小值有兩個(gè),即seed去200時(shí)的1551.72650865326,和seed取400時(shí)的1535.19232923634,這也是本次實(shí)驗(yàn)中最好的一個(gè)方案結(jié)果。我所遇到的問題是,如何迅速的找到是“Within cluster sum of squared errors”值最小的聚類方案?如果數(shù)據(jù)實(shí)例的數(shù)目非常的大,通過不但的改變seed值去嘗試尋找是很不現(xiàn)實(shí)的,而且,還可能出現(xiàn)局部的最小值。如何以最快的速度找出最好的聚類方案,這是值得我們?nèi)タ紤]的一個(gè)問題。5. 預(yù)置問題的回答在Weka中實(shí)現(xiàn)K均值聚類的數(shù)據(jù)預(yù)處理中:(1)為什么要將children屬性變成分類型?因?yàn)镵均值算法只能處理數(shù)值型的屬性,遇到分類型的屬性時(shí)要把它變?yōu)槿舾蓚€(gè)取值0和1的屬性。而Weka能自動(dòng)實(shí)施這個(gè)分類型到數(shù)值型的變換,而且Weka會(huì)自動(dòng)對(duì)數(shù)值型的數(shù)據(jù)作標(biāo)準(zhǔn)化。而且,children屬性不能直接處理為數(shù)值性屬性,因?yàn)楹⒆拥臄?shù)量不能出現(xiàn)有小數(shù)的情況。因此,我們?yōu)榱耸筗eka能自動(dòng)地,正確的處理children屬性,要將children屬性變成分類型。(2)Weka將自動(dòng)實(shí)施這個(gè)分類型到數(shù)值型的變換是指將這個(gè)分類型的屬性變?yōu)槿舾蓚€(gè)取值0和1的屬性,將這個(gè)變化結(jié)果截圖,并進(jìn)行解釋。我們以children屬性為例加以說明。之前,我們將children屬性變成了分類型,在Weka中我們點(diǎn)擊它,便可在右下方看到如下的結(jié)果:圖5 children屬性變?yōu)榉诸愋蛷膱D中我們可以看出,children屬性變成了只有0,1,2,3四種取值的分類型。在Weka自動(dòng)實(shí)施將children分類型到數(shù)值型的變換后,便將children分類型的屬性變?yōu)樗膫€(gè)取值0和1的屬性,我們不妨設(shè)為children0,children1,children2,children3。于是,原來實(shí)例中孩子為0,1,2或3的實(shí)例,轉(zhuǎn)變后其取值方法如下表:表2 變換為數(shù)值型后的children屬性取值方法Children0Children1Children2Children31000010000100001其中,children0取值1,說明這個(gè)實(shí)例原children屬性的值為0,而且,每個(gè)實(shí)例在children*(*為0,1,2或3)四個(gè)屬性上只能有唯一的一個(gè)屬性取值為1,其余三個(gè)為0。這只是我自己的分析,由于在Weka還是保持的arff文件中沒有找到相關(guān)的分類型變換為數(shù)值型后的結(jié)果,因此沒有相關(guān)的截圖。6. 實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)進(jìn)行比較順利,使我對(duì)如何在Weka中進(jìn)行聚類分析有了更深刻的了解,對(duì)Weka中進(jìn)行聚類分析的simpleKmeans算法也有了進(jìn)一步的理解,但是實(shí)驗(yàn)中所遇到的,如何以最快的速度找出最好的聚類方案的問題,還沒有得到更好的解決。我將繼續(xù)閱讀相關(guān)的文獻(xiàn),希望可以找到這個(gè)問題的解決方案。已有實(shí)踐證明

溫馨提示

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

評(píng)論

0/150

提交評(píng)論