本文目的
weka是一套使用java開發的數據挖掘工具集合,提供GUI/CLI界面和Java API使用方式。所以,在學習和解決數據挖掘問題時,可以先嘗試用weka的GUI或CLI做出合適的分析,找到適當的算法,然后在將此算法集成到自己的項目中。最近在的項目中遇到了文本聚類的問題,kmeans是一種常見的聚類算法,這里先拿此算法和示例數據做一些實驗,以便熟悉weka的界面操作。
什么是kmeans
詳細的描述,參見這里。通俗的解釋,就是將K個點,稱為中心點(K需要預先給出),隨機的放到數據集中,然后針對數據集中的每個點計算與這K個中心點的距離,找到每個點最近的中心點。然后更新這K個中心點,使每個中心點是最近的點的平均中心點。如此循環,直到這K個點的位置不能再移動,得到K個聚類。
數據集
weka定義了自己的數據集文件格式,以.arrf結尾,整體感覺就是一張表格,主要分為四個部分(如下圖):
- 注釋,comment
- 數據集名稱,relation
- 屬性,attribute,相當於列
- 數據,每行是一個實例,每一行中的每個字段用逗號隔開,字符串在引號中間,也可以是數字或枚舉
獲取並安裝weka
到官網上獲取weka,如果本機有jre,那么直接下載weka安裝包,如果沒有jre,又不想手動安裝java,可以安裝帶有jre的weka,后者會比前者大。
獲取后,直接雙擊,然后一步步OK,就行,最后會在桌面上生成小圖標
執行Kmeans聚類操作
雙擊小圖標,彈出如下對話框,
選擇“Explorer”,如果以后高級用戶,可以選擇最后的“Simple CLI”,直接命令行操作。
彈出如下對話框
這里,需要實驗數據集,點擊這里下載,然后點擊“open file …”,導入剛剛下載的數據集,出現如下界面,說明導入OK。
現在,選取最上面的第三個tab“Cluster”,進入聚類分析主界面
點擊“Choose”按鈕,選擇聚類算法。這里先選擇了SimpleKMeans,單機“Choose”旁邊的輸入框,可以設置算法參數
這里需要將”numClusters”修改為一個合適的值,其他保留默認即可。
記下來,點擊開始,weka就開會幫你算出結果,結果會以文件的方式存儲在Result List中,方便后面分析。右邊是計算結果。
結果可視化
Explorer主界面最上面最后一個tab是數據結果可視化,目前只能支持2緯可視化,所以個人覺得比較雞肋,因為一般數據緯度都為大於2緯。
具體如何使用可視化,可以參見最后的鏈接。
以上就是利用weka進行kmeans聚類操作的過程。
參考資料