陳 朋
(上海大學 管理學院,上海 200444)
近年來,隨著數據挖掘工具的不斷涌現,如何選擇數據挖掘工具已成為數據挖掘技術引入的一大難題。Elder Research Inc.(ERI)提供了許多數據挖掘系統和工具的性能測試報告[1]。
不同的軟件有不同的特點,一方面要關注它們的性能,同時也要關注這些軟件應用到數據挖掘中時產生的結果。下面僅討論在 SPSS(ver.16)和 KNIME(ver.2.1.1)中K-means算法所產生的結果的特點和差別。
K-means[2]算法是一種著名的并且常用的聚類方法。K-means以k為參數,把n個對象分為k個簇(cluster),以使簇內具有較高的相似度,而簇間的相似度較低。相似度的計算是根據一個簇中對象的平均值(被看作簇的重心)來進行的。
K-means算法隨機地選擇k個對象,每個對象初始地代表了一個簇的平均值或中心,根據其與各個簇中心的距離,對剩余的每個對象賦給最近的簇,然后重新計算每個簇的平均值。這個過程不斷重復,直到準則函數收斂。通常,采用平方誤差準則定義如下:

式中,E是數據庫中所有對象的平方誤差的總和,p是空間中的點,表示給定的數據對象,mi是簇Ci的平均值(p和mi都是多維的)。這個準則試圖使生成的結果簇盡可能地緊湊和獨立。
該算法嘗試找出使平方誤差函數值最小的k個劃分。若結果簇密集,而簇與簇之間的區別明顯時,其效果好。對處理大數據集,該算法的可伸縮度和效率相對較高,因為它的復雜度是O(nkt),其中,n是所有對象的數目,k 是簇的數目,t是迭代的次數。 通常,k<<n,且 t<<n。這個算法經常以局部最優結束。
但是,K-means方法只有在簇的平均值被定義的情況下才能使用,這可能不適用于某些應用,例如涉及有分類屬性的數據。該方法的一個缺點是要求用戶必須事先給出k(要生成的簇的數目)。K-means方法不適用于發現非凸面形狀的簇。此外,它對于“噪聲”和孤立點數據敏感,少量的該種數據能夠對平均值產生極大的影響。
SPSS(Statistical Product and Service Solutions)是世界上最早采用圖形菜單驅動界面的統計軟件,它最突出的特點就是操作界面極為友好,輸出結果美觀漂亮。它將幾乎所有的功能都以統一、規范的界面展現出來,使用Windows的窗口方式展示各種管理和分析數據方法的功能,使用對話框展示出各種功能選擇項,用戶只要掌握一定的Windows操作技能,粗通統計分析原理,就可以使用該軟件為特定的科研工作服務。SPSS采用類似Excel表格的方式輸入與管理數據,數據接口較為通用,能方便地從其他數據庫中讀取數據。其統計過程包括了常用的、較為成熟的統計過程,完全可以滿足非統計專業人士的工作需要。輸出結果十分美觀,存儲時則是專用的SPO格式,可以轉存為HTML格式和文本格式。對于熟悉老版本編程運行方式的用戶,SPSS還特別設計了語法生成窗口,用戶只需在菜單中選好各個選項,然后按“粘貼”按鈕就可以自動生成標準的SPSS程序,極大地方便了中、高級用戶。
KNIME(Konstanz Information Miner)[3]數據挖掘工具基于Eclipse開發環境精心開發,可以擴展使用Weka中的挖掘算法。它采用類似數據流(data flow)的方式來建立分析挖掘流程。挖掘流程由一系列功能節點 (node)組成,每個節點有輸入/輸出端口(port),用于接收數據或模型、導出結果。節點之間的連接很方便,直接用鼠標拖拽連接端口即可。
KNIME中每個節點都帶有交通信號燈,用于指示該節點的狀態(未連接、未配置、缺乏輸入數據時為紅燈,準備執行為黃燈,執行完畢后為綠燈)。KNIME的特色功能HiLite允許用戶在節點結果中標記感興趣的記錄,并進一步展開后續探索。
鳶尾花數據集[4]被公認為最著名的用于數據挖掘的數據集,它包含3種植物種類,每種各有 50個樣本,所以樣本總數為150。它有花萼長 (sepallength)、花萼寬(sepalwidth)、花瓣長(petallength)、花瓣寬(petalwidth)4 個屬性,且都是數值屬性。為了使實驗結果更明顯,添加屬性class用以顯示鳶尾花所處的類,數據庫內的三個品種分別是 Iris-versicolor、Iris-setosa 和 Iris-virginicia。
設置k=3,在SPSS中K-means的運算結果如表1所示,KNIME中K-means的運算結果如圖1所示。

表1 SPSS中K-means運算結果(k=3)
由于兩個工具得到的聚類序號不具有一一對應關系,為了比較兩種結果需要對類號進行統一。根據鳶尾花數據集的屬性class可以完成這項工作,得到統一后的結果如表2所示。

圖1 KNIME中K-means運算的結果(k=3)

表2 進行統一后的聚類結果
實驗所采用的小樣本數據集如表3所示,當k分別設置為2和3時,使用KNIME的運算結果如圖2所示,使用SPSS的運算結果如表4和表5所示。

表3 數據準備
通過以上結果可以得出這樣的結論:當K-means聚類方法用于大樣本數據集的時候,無論是從聚類的最終中心距離,還是每個聚類內所有樣本的數目,SPSS和KNIME產生的聚類幾乎是一致的,即排除K-means算法本身的一些缺陷以外,不同的分析工具不會對聚類結果產生顯著的影響。


表4 SPSS中K-means運算的結果(k=2)

表5 SPSS中K-means運算的結果(k=3)
當K-means聚類方法用于大樣本數據集的時候,本文只是選取了在k值分別是2和3兩種情況下的結果,可以看出k值從2變為3時,兩種工具得出的最終結果存在較大的差異,這是因為算法開始時隨機地選擇k個對象,兩種工具選取的樣本將會有所不同,加之樣本總數的限制,最終導致了聚類結果的差別。
數據挖掘的工具還有很多,如何進行數據集的選取是目前存在的問題,為了得到更加完善和具有普通意義的結論,需要關注這些問題。
[1]ABBOTT D W,MATKOVSKY I P.An evaluation of high-end data mining tools for fraud detection[R].IEEE International Conference on Systems.1998,12:12-14.
[2]HAN Jia Wei,KAMBER M著.數據挖掘概念與技術[M].范明,孟小峰,譯.北京:機械工業出版社,2004.
[3]BERTHOLD M R,CEBRON N.Knime:the konstanz information miner[R].http://www.knime.org,2007,9.
[4]FISHER R A.Iris plants database[DB].http://archive.ics.uci.edu/ml/datasets/Iris,1988,7.
[5]黃穎,李偉.EM算法與 K-Means算法比較[J].計算機與現代化,2007(9):12-14.
[6]LI Tao Ying,CHEN Yan.An effective algorithm to solve optimal k value of K-means algorithm[S].International symposium on distributed computing and applications to business,2006.
[7]JIANG Sheng Yi,LI Qing Hua.An enhanced K-means clustering algorithm[J].Computer Engineer&Science,2006.
[8]袁方,周志永,宋鑫.初始聚類中心優化的 K-means算法[J].計算機工程,2007,2(33).
[9]張雪英.國外先進數據挖掘工具的比較分析[J].計算機工程,2003,9(29).