Weka使用Java的數據庫鏈接能力可以訪問SQL數據庫,并可以處理一個數據庫的查詢結果。它主要的用戶接品是Explorer,也同樣支持相同功能的命令行,或是一種基于組件的知識流接口。如果想自己實現數據挖掘算法的話,可以看一下Weka的接口文檔,在Weka 中集成自己的算法甚至借鑒它的方法自己實現可視化工具并不是一件很困難的事情。
【數據挖掘的過程】
1.讀入訓練、測試樣本
2.初始化分類器
3.使用訓練樣本訓練分類器
4.使用測試樣本測試分類器的學習效果
5.打印分類結果
【Weka使用說明】
WEKA啟動:
數據挖掘絕非大公司的專有,也不是多昂貴的軟件。實際上,有一種軟件可以實現那些價格不菲的軟件所能實現的全部功能 — 這個軟件就是 WEKA(參見 參考資料)。WEKA 誕生于 University of Waikato(新西蘭)并在 1997 年首次以其現代的格式實現。它使用了 GNU General Public License (GPL)。該軟件以 Java™ 語言編寫并包含了一個 GUI 來與數據文件交互并生成可視結果(比如表和曲線)。它還有一個通用 API,所以您可以像嵌入其他的庫一樣將 WEKA 嵌入到您自己的應用程序以完成諸如服務器端自動數據挖掘這樣的任務。
我們繼續(xù)并安裝 WEKA。因為它基于 Java,所以如果您在計算機上沒有安裝 jre,那么請下載一個包含 JRE 的 WEKA 版本。
圖 1. WEKA 的開始屏
在啟動 WEKA 時,會彈出 GUI 選擇器,讓您選擇使用 WEKA 和數據的四種方式。對于本文章系列中的例子,我們只選擇了 Explorer 選項。對于我們要在這些系列文章中所需實現的功能,這已經足夠。
圖 2. WEKA Explorer
在熟悉了如何安裝和啟動 WEKA 后,讓我們來看看我們的第一個數據挖掘技術:回歸。
Weka怎么用?
Weka是基于java,用于數據挖掘和知識分析一個平臺。來自世界各地的java愛好者們都可以把自己的算法放在這個平臺上,然后從海量數據中發(fā)掘其背后隱藏的種種關系;也許你只是出于對數據的狂熱愛好,但也許你的發(fā)現會蘊含著無限的商機。
打開Weka,首先出現一個命令行窗口。原以為要在這個命令行下寫java語句呢,不過稍等一秒,Weka GUI Chooser的出現了。這是一個很簡單的窗體,提供四個按鈕:Simple CLI、Explorer、Experimenter、KnowledgeFlow。Simple CLI應該是一個使用命令行的界面,有點像SAS的編輯器;Explorer是則是視窗模式下的數據挖掘工具;Experimenter和 KnowledgeFlow的使用有待進一步摸索....
先打開Weka Exlporer感受一下它的強大吧。它有六個標簽頁,分別是Preprocess、Classify、Cluster、Associate、 Select attributes、Visualize。在Preprocess中Open一個數據文件(Weka使用的數據文件是.arff,其實是一個文本數據集,格式并不復雜,用notepad打開一看就明白了)。當然也可以Open URL或Open DB,不過我沒有check一下支持哪些DB。
打開數據文件后,可以使用Filter進行一下過濾,相當于“預處理的預處理”。Filter提供了許多算法來過濾數據,比如 filters/unsupervised/instance/normalize應該是一個標準化的算法。當然,也可以編寫你自己的算法!
這時窗體上已經給出這個數據集的一些基本特征了,比如有多少屬性,各屬性的一些簡單統(tǒng)計量,右下方還給出一些可視化效果比如柱狀圖。通過這些可以初步了解這個數據集了。但這些都是很直觀的可以看出來,好戲在后頭,隱藏的關系即將登場。
接下來的兩個標簽頁是classify(分類)和cluster(聚類),接觸數據挖掘的人對它們一定不會陌生。同樣Weka有許多分類和聚類算法可供選擇,在這里面稱為clasifier和clusterer。不過Weka提供的classify功能似乎還不夠靈活,只能定長度和定頻率地分類。但這個關系不大,現在很多數據處理軟件都可以做到這個,比如excel。Cluster功能強大,提供了許多巧妙的聚類算法,選定一個算法,給出你所需要生成的聚類數目,就可以自動完成。當然如果能不給出聚類數目也能自動聚類的話就更佳了,不過我還沒發(fā)現怎么做。
Next,終于到偉大的Associate了! 這是一個用于發(fā)掘Associate Rules(關聯(lián)規(guī)則)的模塊。對商學略有涉獵的人一定熟知沃爾瑪發(fā)現了啤酒和尿布銷售的關系這一佳話。有了Weka Associate,任何一家超市都可以做到這一點了。將前面導入的數據使用Associator進行發(fā)掘,就可以發(fā)現其中無數隱藏的關系。Weka-3 -4提供了Apriori、PredictiveApriori、Tertius三種關聯(lián)規(guī)則發(fā)掘算法,不過我感覺這已經夠用了。選定一個算法,進行一些必要的設置,包括支持度上界、下界,每次運算的支持度遞減值,等等。另外一個重要的參數:所需要生成的關聯(lián)規(guī)則個數。太不可思議了,以前我們能從海量數據中發(fā)現一個關聯(lián)規(guī)則就已經沾沾自喜,現在Weka居然問你想生成多少關聯(lián)規(guī)則!
參數設置完成,點Start,就可以去喝茶了。不一會,10條關聯(lián)規(guī)則已經生成,可以提交給老板了。當然,你還可以分析一下哪些規(guī)則比較有用,哪一條有潛在收益,這就需要business sense了。
另外兩個標簽頁還沒怎么看。Select attributes大概是針對單屬性的分析?Visualize則提供了許多可視化效果,需要拿出去演示時很方便。不過今天使用感覺這個模塊的功能有點問題,沒太搞懂。也有可能是我用錯了。
將數據載入 WEKA:
數據創(chuàng)建完成后,就可以開始創(chuàng)建我們的回歸模型了。啟動 WEKA,然后選擇 Explorer。將會出現 Explorer 屏幕,其中 Preprocess 選項卡被選中。選擇 Open File 按鈕并選擇在上一節(jié)中創(chuàng)建的 ARFF 文件。在選擇了文件后,WEKA Explorer 應該類似于圖 3 中所示的這個屏幕快照。
圖 3. 房屋數據加載后的 WEKA
在這個視圖中,WEKA 允許您查閱正在處理的數據。在 Explorer 窗口的左邊,給出了您數據的所有列(Attributes)以及所提供的數據行的數量(Instances)。若選擇一列,Explorer 窗口的右側就會顯示數據集內該列數據的信息。比如,通過選擇左側的 houseSize 列(它應該默認選中),屏幕右側就會變成顯示有關該列的統(tǒng)計信息。它顯示了數據集內此列的最大值為 4,032 平方英尺,最小值為 2,200 平方英尺。平均大小為 3,131 平方英尺,標準偏差為 655 平方英尺(標準偏差是一個描述差異的統(tǒng)計量度)。此外,還有一種可視的手段來查看數據,單擊Visualize All 按鈕即可。由于在這個數據集內的行數有限,因此可視化的功能顯得沒有有更多數據點(比如,有數百個)時那么功能強大。
好了,對數據的介紹已經夠多了。讓我們立即創(chuàng)建一個模型來獲得我房子的價格。



































