前言
當代全球掀起了一股學習資料採擷和機器學習的熱潮,從史丹佛大學公開課「機器學習課程」,到龍星計畫的「機器學習Machine Learning」課程,再到加州理工學院公開課「機器學習與資料採擷」課程,參加這些網路課程學習的人群越來越多,資料採擷和機器學習炙手可熱。
資料採擷是資料庫知識發現中的步驟,它從大量資料中自動分析出隱含的、過去未知的、有價值的潛在資訊。機器學習主要設計和分析一些讓電腦可以自動「學習」的演算法,其演算法是一種從資料中自動分析獲得規律,並利用規律對未知資料進行預測。機器學習和資料採擷這兩個領域聯繫密切,資料採擷利用機器學習提供的技術來分析巨量資料,以發掘資料中隱含的有用資訊。
資料採擷和機器學習這兩個密切相關的領域存在一個特點:理論很強而實作很弱。眾所皆知,理論和實作是研究者的左腿和右腿,缺了一條腿的研究者一定難以前行,有的技術人員花了許多年時間進行研究,雖然了解甚至熟悉了很多公式和演算法,但仍然難以真正去面對一個實際採擷問題並極佳地解決手上的技術難題,其根本原因就是—— 缺乏實作。
本書就是為了試圖解決資料採擷和機器學習的實作問題而撰寫的,依靠紐西蘭懷卡托大學採用Java 語言開發的著名開放原始碼軟體Weka,該系統自1993 年開始由紐西蘭政府資助,至今已經歷了20 年的發展,它的功能已經十分強大和成熟。Weka 集合了大量的機器學習和相關技術,受領域發展和使用者需求所推動,代表了當今資料採擷和機器學習領域的最高水準。因此,研究Weka 能幫助研究者從實作去驗證所學的理論,顯然有很好的理論意義或實際意義。
本書共分8 章。第1 章介紹Weka 的歷史和功能、資料採擷和機器學習的基本概念、Weka 系統安裝,以及範例資料集;第2 章介紹Explorer 介面的使用,主要內容包含:圖形化使用者介面、前置處理、分類、集群、連結、選擇屬性,以及視覺化;第3 章介紹Knowledge Flow 介面,主要內容有知識流介紹、知識流元件、使用知識流元件,以及實作教學;第4 章介紹Experimenter 介面,主要內容有Experimenter介面介紹、標準實驗、遠端實驗,以及分析實驗結果;第5 章介紹命令列介面,主要內容有命令列介面介紹、Weka 結構、命令列選項、篩檢程式和分類器選項,以及Weka 套件管理員;第6 章介紹一些Weka 的進階應用,主要介紹Weka 的貝氏網
路、神經網路、文字分類和時間序列分析及預測;第7 章介紹Weka API,介紹如何使用Java 原始程式碼來實現常見資料採擷工作的基礎知識,並列出一個展示如何進行資料採擷的綜合範例;最後一章透過對一個學習方案的原始程式碼進行分析,深入研究Weka 學習方案的工作原理,為開發人員提供一個撰寫學習演算法的技術基礎。
在閱讀大量相關文獻的過程中,作者深深為國外前輩們的理論功力和實作技能所折服,那些巨人們站在高處,使人難以望其項背。雖然得益於諸如網易公開課和龍星計畫等專案,我們有機會和全世界站在同一個數量級的知識起跑線上,但是,這並不表示能在將來的競爭中佔據優勢,正如孫中山先生所說「革命尚未成功,同志仍須努力」,讓我們一起共勉。
在本書的撰寫過程中,作者力求精益求精,但限於作者的知識和能力,且很多材料都難以取得,考證和去偽存真是一件時間負擔非常大和異常困難的工作,因此一定會有所遺漏及不妥之處,敬請讀者們批評指正。