數據挖掘:實用機器學習工具與技術

數據挖掘:實用機器學習工具與技術

《數據挖掘:實用機器學習工具與技術》是2014年機械工業出版社出版的圖書,作者是威滕、弗蘭克。

基本介紹

  • 中文名:數據挖掘:實用機器學習工具與技術
  • 外文名:Data Mining: Practical Machine Learning Tools and Techniques, Third Edition
  • 作者:威滕 、弗蘭克 
  • 出版社:機械工業出版社
  • 頁數:462頁
  • 開本:16
  • 品牌:機械工業出版社
  • 類型:科技
  • 出版日期:2014年5月1日
  • 語種:簡體中文
  • ISBN:9787111453819
基本介紹,內容簡介,作者簡介,圖書目錄,序言,名人推薦,

基本介紹

內容簡介

大數據時代套用機器學習方法解決數據挖掘問題的實用指南。
洞察隱匿於大數據中的結構模式,有效指導數據挖掘實踐和商業套用。
weka系統的主要開發者將豐富的研發、商業套用和教學實踐的經驗和技術融會貫通。
廣泛覆蓋在數據挖掘實踐中採用的算法和機器學習技術,著眼於解決實際問題
避免過分要求理論基礎和數學知識,重點在於告訴讀者“如何去做”,同時包括許多算法、代碼以及具體實例的實現。
將所有的概念都建立在具體實例的基礎之上,促使讀者首先考慮使用簡單的技術。如果簡單的技術不足以解決問題,再考慮提升到更為複雜的高級技術。
新版增加了大量近年來最新湧現的數據挖掘算法和諸如Web數據挖掘等新領域的介紹,所介紹的weka系統增加了50%的算法及大量新內容。
本書是機器學習和數據挖掘領域的經典暢銷教材,被眾多國外名校選為教材。書中詳細介紹用於數據挖掘領域的機器學習技術和工具以及實踐方法,並且提供了一個公開的數據挖掘工作平台Weka。本書主要內容包括:數據輸入/輸出、知識表示、數據挖掘技術(決策樹、關聯規則、基於實例的學習、線性模型、聚類、多實例學習等)以及在實踐中的運用。本版對上一版內容進行了全面更新,以反映自第2版出版以來數據挖掘領域的技術變革和新方法,包括數據轉換、集成學習、大規模數據集、多實例學習等,以及新版的Weka機器學習軟體。本書邏輯嚴謹、內容翔實、極富實踐性,適合作為高等院校本科生或研究生的教材,也可供相關技術人員參考。

作者簡介

Ian H. Witten 紐西蘭懷卡托大學計算機科學系教授,ACM Fellow和紐西蘭皇家學會Fellow,曾榮獲2004年國際信息處理研究協會(IFIP)頒發的Namur獎項。他的研究興趣包括語言學習、信息檢索和機器學習。
Eibe Frank 紐西蘭懷卡托大學計算機科學系副教授,《Machine Learning Journal》和《Journal of Artificial Intelligence Research》編委。
Mark A. Hall 紐西蘭懷卡托大學名譽副研究員,曾獲得2005年ACM SIGKDD服務獎。

李 川 博士,副教授,四川大學計算機學院資料庫知識工程研究所副所長,中國計算機學會資料庫專委會委員。主持國家自然科學基金青年基金等項目多項,合作發表論文30餘篇,獲四川省科技成果二等獎1項。

圖書目錄

出版者的話
譯者序
前言
致謝
第一部分 數據挖掘簡介
第1章 緒論2
1.1 數據挖掘和機器學習2
1.1.1 描述結構模式3
1.1.2 機器學習5
1.1.3 數據挖掘6
1.2 簡單的例子:天氣問題和其他問題6
1.2.1 天氣問題7
1.2.2 隱形眼鏡:一個理想化的問題8
1.2.3 鳶尾花:一個經典的數值型數據集10
1.2.4 CPU性能:介紹數值預測11
1.2.5 勞資協商:一個更真實的例子11
1.2.6 大豆分類:一個經典的機器學習的成功例子13
1.3 套用領域14
1.3.1 Web挖掘15
1.3.2 包含評判的決策15
1.3.3 圖像篩選16
1.3.4 負載預測17
1.3.5 診斷17
1.3.6 市場和銷售18
1.3.7 其他套用19
1.4 機器學習和統計學20
1.5 將泛化看做搜尋21
1.5.1 枚舉概念空間22
1.5.2 偏差22
1.6 數據挖掘和道德24
1.6.1 再識別25
1.6.2 使用個人信息25
1.6.3 其他問題26
1.7 補充讀物27
第2章 輸入:概念、實例和屬性29
2.1 概念29
2.2 樣本31
2.2.1 關係32
2.2.2 其他實例類型34
2.3 屬性35
2.4 輸入準備37
2.4.1 數據收集37
2.4.2 ARFF格式38
2.4.3 稀疏數據40
2.4.4 屬性類型40
2.4.5 缺失值41
2.4.6 不正確的值42
2.4.7 了解數據43
2.5 補充讀物43
第3章 輸出:知識表達44
3.1 表44
3.2 線性模型44
3.3 樹45
3.4 規則48
3.4.1 分類規則49
3.4.2 關聯規則52
3.4.3 包含例外的規則52
3.4.4 表達能力更強的規則54
3.5 基於實例的表達56
3.6 聚類58
3.7 補充讀物60
第4章 算法:基本方法61
4.1 推斷基本規則61
4.1.1 缺失值和數值屬性62
4.1.2 討論64
4.2 統計建模64
4.2.1 缺失值和數值屬性67
4.2.2 用於文檔分類的樸素貝葉斯68
4.2.3 討論70
4.3 分治法:建立決策樹70
4.3.1 計算信息量73
4.3.2 高度分支屬性74
4.3.3 討論75
4.4 覆蓋算法:建立規則76
4.4.1 規則與樹77
4.4.2 一個簡單的覆蓋算法77
4.4.3 規則與決策列表80
4.5 挖掘關聯規則81
4.5.1 項集81
4.5.2 關聯規則83
4.5.3 有效地生成規則85
4.5.4 討論87
4.6 線性模型87
4.6.1 數值預測:線性回歸87
4.6.2 線性分類:Logistic回歸88
4.6.3 使用感知機的線性分類90
4.6.4 使用Winnow的線性分類91
4.7 基於實例的學習92
4.7.1 距離函式93
4.7.2 有效尋找最近鄰93
4.7.3 討論97
4.8 聚類97
4.8.1 基於距離的疊代聚類98
4.8.2 快速距離計算99
4.8.3 討論100
4.9 多實例學習100
4.9.1 聚集輸入100
4.9.2 聚集輸出100
4.9.3 討論101
4.10 補充讀物101
4.11 Weka實現103
第5章 可信度:評估學習結果104
5.1 訓練和測試104
5.2 預測性能106
5.3 交叉驗證108
5.4 其他評估方法109
5.4.1 留一交叉驗證109
5.4.2 自助法109
5.5 數據挖掘方法比較110
5.6 預測機率113
5.6.1 二次損失函式114
5.6.2 信息損失函式115
5.6.3 討論115
5.7 計算成本116
5.7.1 成本敏感分類117
5.7.2 成本敏感學習118
5.7.3 提升圖119
5.7.4 ROC曲線122
5.7.5 召回率—精確率曲線124
5.7.6 討論124
5.7.7 成本曲線125
5.8 評估數值預測127
5.9 最小描述長度原理129
5.10 在聚類方法中套用MDL原理131
5.11 補充讀物132
第二部分 高級數據挖掘
第6章 實現:真正的機器學習方案134
6.1 決策樹135
6.1.1 數值屬性135
6.1.2 缺失值136
6.1.3 剪枝137
6.1.4 估計誤差率138
6.1.5 決策樹歸納的複雜度140
6.1.6 從決策樹到規則140
6.1.7 C4.5:選擇和選項141
6.1.8 成本—複雜度剪枝141
6.1.9 討論142
6.2 分類規則142
6.2.1 選擇測試的標準143
6.2.2 缺失值和數值屬性143
6.2.3 生成好的規則144
6.2.4 使用全局最佳化146
6.2.5 從局部決策樹中獲得規則146
6.2.6 包含例外的規則149
6.2.7 討論151
6.3 關聯規則152
6.3.1 建立頻繁模式樹152
6.3.2 尋找大項集157
6.3.3 討論157
6.4 擴展線性模型158
6.4.1 最大間隔超平面159
6.4.2 非線性類邊界160
6.4.3 支持向量回歸161
6.4.4 核嶺回歸163
6.4.5 核感知機164
6.4.6 多層感知機165
6.4.7 徑向基函式網路171
6.4.8 隨機梯度下降172
6.4.9 討論173
6.5 基於實例的學習174
6.5.1 減少樣本集的數量174
6.5.2 對噪聲樣本集剪枝174
6.5.3 屬性加權175
6.5.4 泛化樣本集176
6.5.5 用於泛化樣本集的距離函式176
6.5.6 泛化的距離函式177
6.5.7 討論178
6.6 局部線性模型用於數值預測178
6.6.1 模型樹179
6.6.2 構建樹179
6.6.3 對樹剪枝180
6.6.4 名目屬性180
6.6.5 缺失值181
6.6.6 模型樹歸納的偽代碼181
6.6.7 從模型樹到規則184
6.6.8 局部加權線性回歸184
6.6.9 討論185
6.7 貝葉斯網路186
6.7.1 預測186
6.7.2 學習貝葉斯網路189
6.7.3 算法細節190
6.7.4 用於快速學習的數據結構192
6.7.5 討論194
6.8 聚類194
6.8.1 選擇聚類的個數195
6.8.2 層次聚類195
6.8.3 層次聚類的例子196
6.8.4 增量聚類199
6.8.5 分類效用203
6.8.6 基於機率的聚類204
6.8.7 EM算法205
6.8.8 擴展混合模型206
6.8.9 貝葉斯聚類207
6.8.10 討論209
6.9 半監督學習210
6.9.1 用於分類的聚類210
6.9.2 協同訓練212
6.9.3 EM和協同訓練212
6.9.4 討論213
6.10 多實例學習213
6.10.1 轉換為單實例學習213
6.10.2 升級學習算法215
6.10.3 專用多實例方法215
6.10.4 討論216
6.11 Weka實現216
第7章 數據轉換218
7.1 屬性選擇219
7.1.1 獨立於方案的選擇220
7.1.2 搜尋屬性空間222
7.1.3 具體方案相關的選擇223
7.2 離散化數值屬性225
7.2.1 無監督離散化226
7.2.2 基於熵的離散化226
7.2.3 其他離散化方法229
7.2.4 基於熵的離散化與基於誤差的離散化229
7.2.5 離散屬性轉換成數值屬性230
7.3 投影230
7.3.1 主成分分析231
7.3.2 隨機投影233
7.3.3 偏最小二乘回歸233
7.3.4 從文本到屬性向量235
7.3.5 時間序列236
7.4 抽樣236
7.5 數據清洗237
7.5.1 改進決策樹237
7.5.2 穩健回歸238
7.5.3 檢測異常239
7.5.4 一分類學習239
7.6 多分類問題轉換成二分類問題242
7.6.1 簡單方法242
7.6.2 誤差校正輸出編碼243
7.6.3 集成嵌套二分法244
7.7 校準類機率246
7.8 補充讀物247
7.9 Weka實現249
第8章 集成學習250
8.1 組合多種模型250
8.2 裝袋251
8.2.1 偏差—方差分解251
8.2.2 考慮成本的裝袋253
8.3 隨機化253
8.3.1 隨機化與裝袋254
8.3.2 旋轉森林254
8.4 提升255
8.4.1 AdaBoost算法255
8.4.2 提升算法的威力257
8.5 累加回歸258
8.5.1 數值預測258
8.5.2 累加Logistic回歸259
8.6 可解釋的集成器260
8.6.1 選擇樹260
8.6.2 Logistic模型樹262
8.7 堆疊262
8.8 補充讀物264
8.9 Weka實現265
第9章 繼續:擴展和套用266
9.1 套用數據挖掘266
9.2 從大型的數據集裡學習268
9.3 數據流學習270
9.4 融合領域知識272
9.5 文本挖掘273
9.6 Web挖掘276
9.7 對抗情形278
9.8 無處不在的數據挖掘280
9.9 補充讀物281
第三部分 Weka數據挖掘平台
第10章 Weka簡介284
10.1 Weka中包含了什麼284
10.2 如何使用Weka285
10.3 Weka的其他套用286
10.4 如何得到Weka286
第11章 Explorer界面287
11.1 開始287
11.1.1 準備數據287
11.1.2 將數據載入Explorer288
11.1.3 建立決策樹289
11.1.4 查看結果290
11.1.5 重做一遍292
11.1.6 運用模型292
11.1.7 運行錯誤的處理294
11.2 探索Explorer294
11.2.1 載入及過濾檔案294
11.2.2 訓練和測試學習方案299
11.2.3 自己動手:用戶分類器301
11.2.4 使用元學習器304
11.2.5 聚類和關聯規則305
11.2.6 屬性選擇306
11.2.7 可視化306
11.3 過濾算法307
11.3.1 無監督屬性過濾器307
11.3.2 無監督實例過濾器312
11.3.3 有監督過濾器314
11.4 學習算法316
11.4.1 貝葉斯分類器317
11.4.2 樹320
11.4.3 規則322
11.4.4 函式325
11.4.5 神經網路331
11.4.6 懶惰分類器334
11.4.7 多實例分類器335
11.4.8 雜項分類器336
11.5 元學習算法336
11.5.1 裝袋和隨機化337
11.5.2 提升338
11.5.3 組合分類器338
11.5.4 成本敏感學習339
11.5.5 最佳化性能339
11.5.6 針對不同任務重新調整分類器340
11.6 聚類算法340
11.7 關聯規則學習器345
11.8 屬性選擇346
11.8.1 屬性子集評估器347
11.8.2 單一屬性評估器347
11.8.3 搜尋方法348
第12章 KnowledgeFlow界面351
12.1 開始351
12.2 KnowledgeFlow組件353
12.3 配置及連線組件354
12.4 增量學習356
第13章 Experimenter界面358
13.1 開始358
13.1.1 運行一個實驗358
13.1.2 分析結果359
13.2 簡單設定362
13.3 高級設定363
13.4 分析面板365
13.5 將運行負荷分布到多個機器上366
第14章 命令行界面368
14.1 開始368
14.2 Weka的結構368
14.2.1 類、實例和包368
14.2.2 weka.core包370
14.2.3 weka.classifiers包371
14.2.4 其他包372
14.2.5 Javadoc索引373
14.3 命令行選項373
14.3.1 通用選項374
14.3.2 與具體方案相關的選項375
第15章 嵌入式機器學習376
15.1 一個簡單的數據挖掘套用376
15.1.1 MessageClassifier()380
15.1.2 updateData()380
15.1.3 classifyMessage()381
第16章 編寫新的學習方案382
16.1 一個分類器範例382
16.1.1 buildClassifier()389
16.1.2 makeTree()389
16.1.3 computeInfoGain()390
16.1.4 classifyInstance()390
16.1.5 toSource()391
16.1.6 main()394
16.2 與實現分類器有關的慣例395
第17章 WekaExplorer的輔導練習397
17.1 Explorer界面簡介397
17.1.1 導入數據集397
17.1.2 數據集編輯器397
17.1.3 套用過濾器398
17.1.4 可視化面板399
17.1.5 分類器面板399
17.2 最近鄰學習和決策樹402
17.2.1 玻璃數據集402
17.2.2 屬性選擇403
17.2.3 類噪聲以及最近鄰學習403
17.2.4 改變訓練數據的數量404
17.2.5 互動式建立決策樹405
17.3 分類邊界406
17.3.1 可視化1R406
17.3.2 可視化最近鄰學習407
17.3.3 可視化樸素貝葉斯407
17.3.4 可視化決策樹和規則集407
17.3.5 弄亂數據408
17.4 預處理以及參數調整408
17.4.1 離散化408
17.4.2 離散化的更多方面408
17.4.3 自動屬性選擇409
17.4.4 自動屬性選擇的更多方面410
17.4.5 自動參數調整410
17.5 文檔分類411
17.5.1 包含字元串屬性的數據411
17.5.2 實際文檔文類412
17.5.3 探索StringToWordVector過濾器413
17.6 挖掘關聯規則413
17.6.1 關聯規則挖掘413
17.6.2 挖掘一個真實的數據集415
17.6.3 購物籃分析415
參考文獻416
索引431

序言

前 言
Data Mining:Practical Machine Learning Tools and Techniques,Third Edition

計算和通信的結合建立了一個以信息為基礎的新領域。但絕大多數信息尚處於原始狀態,即以數據的形式存在的狀態。假如我們將數據定義為被記錄下的事實,那么信息就是在這些記錄事實的數據中所隱藏的一系列模式或預期。在資料庫中蘊藏了大量具有潛在重要性的信息,這些信息尚未被發現和利用,我們的任務就是將這些數據釋放出來。
數據挖掘是將隱含的、尚不為人知的同時又是潛在有用的信息從數據中提取出來。為此我們編寫電腦程式,自動在資料庫中篩選有用的規律或模式。假如能發現一些明顯的模式,則可以將其歸納出來以對未來的數據進行準確預測。當然,數據挖掘結果中肯定會出現一些問題,比如許多模式可能是不言自明的或者沒有實際意義的。另一些還有可能是虛假的,或者由於某些具體數據集的偶然巧合而產生的。在現實世界中,數據是不完美的:有些被人為篡改,有些會丟失。我們所觀察到的所有東西都不是完全精確的:任何規律都有例外,並且總會出現不符合任何一個規律的實例。算法必須具有足夠的健壯性以應付不完美的數據,並能提取出不精確但有用的規律。
機器學習為數據挖掘提供了技術基礎,可用其將信息從資料庫的原始數據中提取出來,以可以理解的形式表達,並可用做多種用途。這是一種抽象化過程:如實地全盤接收現有數據,然後在其基礎上推導出所有隱藏在這些數據中的結構。本書將介紹在數據挖掘實踐中,用以發現和描述數據中的結構模式而採用的機器學習工具和技術。
就像所有新興技術都會受到商界的強烈關注一樣,關於數據挖掘套用的報導正淹沒在那些技術類或大眾類出版社的大肆宣揚中。誇張的報導向人們展示了通過設立學習算法就能從浩瀚的數據汪洋中發現那些神秘的規律。但機器學習中絕沒有什麼魔法,沒有什麼隱藏的力量,也沒有什麼巫術,有的只是一些能將有用信息從原始數據中提取出來的簡單和實用的技術。本書將介紹這些技術並展示它們是如何工作的。
我們將機器學習理解為從數據樣本中獲取結構描述的過程。這種結構描述可用於預測、解釋和理解。有些數據挖掘套用側重於預測:從數據所描述的過去預測將來在新情況下會發生什麼,通常是猜測新的樣本分類。但同樣令我們感興趣也許更感興趣的是,“學習”的結果是一個可以用來對樣本進行分類的真實結構描述。這種結構描述不僅支持預測,也支持解釋和理解。根據我們的經驗,在絕大多數數據挖掘實踐套用中,用戶最感興趣的莫過於掌握樣本的本質。事實上,這是機器學習優於傳統統計模型的一個主要優點。
本書向我們詮釋多種機器學習方法。其中一部分出於方便教學的目的而僅僅羅列一些簡單方案,以便清楚解釋基本思想如何實現。其他則考慮到具體實現而列舉很多套用於實際工作中的真實系統。很多都是近幾年發展起來的新方法。
我們創建了一套綜合的軟體資源以說明本書中的思想。軟體名稱是懷卡托智慧型分析環境(Waikato Environment for Knowledge Analysis,Weka Weka(發音與Mecca類似)是一種天生充滿好奇心的不會飛的鳥,這種鳥僅在紐西蘭的島嶼上出現過。),它的Java原始碼可以在網站中得到。Weka幾乎可以完善地實現本書中包含的所有技術。它包括機器學習方法的說明性代碼以及具體實現。針對一些簡單技術,它提供清楚而簡潔的實現,以幫助理解機器學習中的相關機制。Weka還提供一個工作平台,完整、實用、高水準地實現了很多流行的學習方案,這些方案能夠運用於實際的數據挖掘項目或學術研究中。最後,本書還包括一個形如Java類庫的框架,這個框架支持嵌入式機器學習的套用,乃至新的學習方案的實現。
本書旨在介紹用於數據挖掘領域的機器學習工具和技術。讀完本書後,你將對這些技術有所了解並能體會到它們的功效和實用性。如果你希望用自己的數據進行實驗,用Weka就能輕易地做到。
提供數據挖掘案例研究的商業書籍中往往涉及一些非常具有實用性的方法,這些方法與當前機器學習教材中出現的更理論化、原則化的方法之間存在巨大鴻溝,本書跨越了這個鴻溝(關於本書的一些簡介將出現在後面第1章的末尾)。這個鴻溝相當大,為了讓機器學習技術套用富有成果,需要理解它們是如何工作的。這不是一種可以先盲目套用而後期待好結果出現的技術。不同的問題需要不同的技術來解決。但是如何根據實際問題來選擇合適的技術並不是那么容易的事情:你需要知道到底有多少可能的解決方案。我們在本書中所論及的技術範圍相當廣泛,這是因為和其他商業書籍不同,本書無意推銷某種特定的商業軟體或方案。我們列舉大量實例,但為展示實例所採用的數據集卻小得足以讓你搞清楚實例的整個過程。真實的數據集太大,不能做到這一點(而真實數據集的獲取常受限於商業機密)。我們所選擇的數據集並不是用來說明那些擁有大型數據的真實問題,而是幫助你理解不同技術的作用,它們是如何工作的,以及它們的套用範圍是什麼。
本書面向對實際數據挖掘技術所包含的原理和方法感興趣的“技術敏感型”普通讀者。本書同樣適用於需獲得這方面新技術的信息專家,以及所有希望了解機器學習領域技術細節的人。本書也是為有著一般興趣的信息系統實際工作者所寫的,如程式設計師、諮詢顧問、開發人員、信息技術管理員、規範編寫者、專利審核者、業餘愛好者,以及學生和專家教授。他們需要擁有這樣一本書:擁有大量實例且簡單易讀,向讀者闡釋與機器學習相關的主要技術是什麼、做什麼、如何運用它們,以及它們是如何工作的。本書面向實際,告訴讀者“如何去做”,同時包括許多算法、代碼以及具體實例的實現。所有在實際工作中進行數據挖掘的讀者將直接得益於書中敘述的技術。本書旨在幫助那些希望找到掩藏在天花亂墜廣告宣傳下的機器學習真諦的人們,以及幫助那些需要實際可行的、非學術的、值得信賴的方案的人們。我們避免對特定的理論或數學知識做過分要求。在某些涉及特定知識的地方,我們會將相關文本框起來,這些內容是可選部分,通常是為照顧對理論和技術感興趣的讀者,跳過這部分內容不會對整體的連貫性有任何影響。
本書分為幾個層次,不管你是想走馬觀花地瀏覽基本概念,還是想深入詳盡地掌握技術細節,閱讀本書都可以滿足你的要求。我們相信機器學習的使用者需要更多地了解他們運用的算法如何工作。我們常常可以發現,優秀的數據模型是與它的詮釋者分不開的,詮釋者需要知道模型是如何產生的,並且熟悉模型的長處和局限性。當然,並不要求所有的用戶都對算法的細節有深入理解。
根據上述考量,我們將對機器學習方法的描述分為幾個彼此承接的層次。本書共分為三部分,第一部分是關於數據挖掘的介紹,讀者將在這一部分學習數據挖掘的基本思想,這一部分包括書中的前五章。第1章通過實例說明機器學習是什麼,以及能用在什麼地方,並附帶提供一些實際套用。第2、3章給出不同的輸入和輸出,或者稱為知識表達(knowledge representation)。不同的輸出要求不同的算法。第4章介紹機器學習的基本方法,這些方法都以簡化形式出現以方便讀者理解。其中的相關原理通過各種具體算法來呈現,這些算法並未包含複雜細節或精妙的實現方案。為從機器學習技術的套用升級到解決具體的數據挖掘問題,必須對機器學習的效果有一個評估。第5章可以單獨閱讀,它幫助讀者評估從機器學習中得到的結果,解決性能評估中出現的某些複雜問題。
第二部分介紹數據挖掘的一些高級技術。在最低同時也是最詳細的層次上,第6章詳盡揭示實現整系列機器學習算法的步驟,以及在實際套用中為更好工作所必需的、較為複雜的部分(但忽略某些算法對複雜數學原理的要求)。儘管有些讀者也許想忽略這部分的具體內容,但只有到這一層,才能涉及完整、可運作並經過測試的機器學習的Weka實現方案。第7章討論一些涉及機器學習輸入/輸出的實際問題,例如,選擇屬性和離散化屬性。第8章主要介紹“集成學習”技術,這種技術綜合來自不同學習技術的輸出。第9章展望發展趨勢。
本書闡述了在實際機器學習中所使用的大多數方法,但未涉及強化學習(reinforcement learning),因為它在實際數據挖掘中極少套用;未包含遺傳算法(genetic algorithm),因為它僅僅是一種最佳化技術;同樣,也沒有包含關係學習(relational learning)和歸納邏輯程式設計(inductive logic programming),因為它們很少被主流數據挖掘套用所採納。
第三部分介紹Weka數據挖掘平台,它提供在第一部分和第二部分中所描述的幾乎所有思想的實例。我們將那些概念性的材料從如何使用Weka的實際操作材料中清楚地分離出來。在第一、二部分每一章的結尾會給出指向第三部分中相應Weka算法的索引。讀者可以忽略這些部分,或者如果你急於分析你的數據並且不願意糾結於說明算法的技術細節,可以直接跳到第三部分。選定Java來實現本書的機器學習技術,是因為作為面向對象的程式語言,它允許通過統一的界面進行學習方案和方法的前期和後期處理。用Java取代C++、Smalltalk或者其他面向對象的語言,是因為用Java編寫的程式能運行在大部分計算機上而不需要重新進行編譯,不需要複雜的安裝過程,甚至不需要修改原始碼。Java程式編譯成位元組碼後,能運行於任何安裝了適當解釋器的計算機上。這個解釋器稱為Java虛擬機。Java虛擬機和Java編譯器能免費用於所有重要平台上。
在當前所有的可能選擇中,能得到廣泛支持的、標準化的、擁有詳盡文檔的程式語言,Java似乎是最佳選擇。但是,由於在執行前要通過虛擬機將位元組碼編譯為機器代碼,所以Java程式的運行速度比用C或C++語言編碼的相應程式慢。這個缺陷在過去看來很嚴重,但在過去二十年間,Java的執行效率有了大幅度提升。依我們的經驗,如果Java虛擬機採用即時編譯器,那么Java運行慢這個因素幾乎可以忽略不計。即時編譯器將整個位元組碼塊翻譯成機器代碼,而不是一個接一個地翻譯位元組碼,所以它的運行速度能夠得到大幅度的提高。如果對你的套用來說,這個速度依然很慢,還可以選擇採用某些編譯器,跳過位元組碼這一步,直接將Java程式轉換成機器代碼。當然這種代碼不能跨平台使用,這樣犧牲了Java的一個最大優勢。
更新與修改
1999年,我們完成本書的第1版,2005年初完成第2版,經過我們精心修改潤色的本書第3版在2011年同讀者見面。這個世界過去二十年間可謂是滄海桑田!在保留前版基本核心內容的同時,我們增加了很多新內容,力圖使本書與時俱進。本書第3版較前版接近翻倍的文字量可以反映出這種變化。當然,我們也對前版中出現的錯誤進行了校正,並將這些錯誤集中放到我們的公開勘誤檔案里。
第2版
本書第2版中最主要的改變是增加了一個專門的部分來介紹Weka機器學習工作平台。這樣做可以將書中的主要部分獨立於工作平台呈現給讀者,我們將在第3版中沿用這個方法。在第1版中廣為使用和普及的Weka工作平台在第2版中已經改頭換面,增加了新的圖形用戶界面或者說是三個獨立的互動界面,這使讀者使用起來更得心應手。其中最基本的界面是Explorer界面,通過該界面,所有Weka的功能都可以經由選單選擇和表單填寫的方式完成;另一個界面稱為Knowledge Flow界面,它允許對流數據處理過程進行設定;第三個界面是Experimenter界面,可以使用它對某一語料庫設定自動地運行選定的機器學習算法,這些算法都帶有不同的參數設定,Experimenter界面可以收集性能統計數據,並在所得實驗結果的基礎上進行有意義的測試。這些界面可以降低數據挖掘者的門檻。第2版中包括一套如何使用它們的完整介紹。
此外,第2版還包括如下我們前面曾大致提及的新內容。我們對介紹規則學習和成本敏感評估的章節進行了擴充。為了滿足普遍需求,我們增加了一些有關神經網路方面的內容:感知器及相關的Winnow算法,以及多層感知器和BP算法,Logistic回歸也包含在內。我們介紹如何利用核感知器和徑向基函式網路來得到非線性決策邊界,還介紹用於回歸分析的支持向量機。另外,應讀者要求和Weka新特性的加入,我們還融入了有關貝葉斯網路的新章節,其中介紹如何基於這些網路來學習分類器以及如何利用AD樹來高效地套用這些分類器。
在過去的五年(1999—2004)中,文本數據挖掘得到極大的關注,這樣的趨勢反映在以下方面:字元串屬性在Weka中的出現、用於文本分類的多項式貝葉斯以及文本變換。我們還介紹用以搜尋實例空間的高效數據結構:為高效尋找最近鄰以及加快基於距離的聚類而採用的kD樹和球形樹。我們給出新的屬性選擇方案(如競賽搜尋和支持向量機的使用),以及新組合模型技術(如累加回歸、累加Logistic回歸、Logistic模型樹以及選擇樹等),還討論利用無標籤數據提高分類效果的最新進展,包括協同訓練(co-training)和co-EM方法。
第3版
第3版在第2版基礎上進行徹底革新,大量新方法、新算法的引入使本書在內容上與時俱進。我們的基本理念是將本書和Weka軟體平台更緊密地融合。Weka現在的版本已經涵蓋本書前兩部分絕大多數思想的實現,同時你也能通過本書獲取關於Weka的幾乎所有信息。第3版中,我們還添加了大量文獻的引用:引用數量達到第1版的3倍多。
Weka在過去十年中變得煥然一新,也變得易於使用,並且在數據挖掘功能方面有很大提高。它已經集成了無比豐富的機器學習算法和相關技術。Weka的進步部分得益於數據挖掘領域的近期進展,部分受惠於用戶引導以及需求驅動,它使我們對用戶的數據挖掘需求瞭若指掌,充分地借鑑發展中的經驗又能很好地選擇本書內容。
如前文所述,新版本分為三個部分,其中章節內容有部分調整。更重要的是,增加了很多新內容,以下列舉部分重要的改動:
第1章包含了一小節有關Web挖掘的內容,並且從道德角度探討據稱是匿名數據中的個體再識別問題。另外一個重要的補充是關於多實例學習(multi-instance learning),這方面內容出現在兩個新增小節中:4.9節介紹基本方法,6.10節介紹一些更高級的算法。第5章包含有關互動式成本-收益分析(interactive cost-benefit analysis)的新內容。第6章也有大量新增內容:成本-複雜度剪枝(cost-complexity pruning)、高級關聯規則算法(這種算法利用擴展前綴樹將壓縮版本的數據集存儲到主存)、核嶺回歸(kernel ridge regression)、隨機梯度下降(stochastic gradient descent),以及層次聚類方法(hierarchical clustering method)。舊版中關於輸入/輸出的章節被分為兩章:第7章講述數據轉換(主要與輸入有關),第8章是集成學習(輸出)。對於前者,我們增加了偏最小二乘回歸(partial least-squares regression)、蓄水池抽樣算法(reservoir sampling)、一分類學習(one-class learning)——將多分類問題分解為集成嵌套二分法問題,以及校準類機率(calibrating class probabilities)。對於後者,我們增加了新內容以比較隨機方法與裝袋算法和旋轉森林算法(rotation forest)。而關於數據流學習和Web挖掘的內容則增添到第二部分的最後一章。
第三部分主要介紹Weka數據挖掘工作平台,也加入大量新內容。Weka中添入多種新的過濾器、機器學習算法、屬性選擇算法、如多種檔案格式轉換器一樣的組件以及參數最佳化算法。實際上,第3版中介紹的新版本Weka比第2版中的Weka增加了50%的算法。所有這些變化都以文檔形式保存。為了滿足一些常見要求,我們給出關於不同分類器輸出的細節並解釋這些輸出所揭示的意義。另一個重要的變化是我們新增了一個嶄新的章節——第17章,在這一章中給出一些關於Weka Explorer界面的輔導練習(其中的部分練習頗具難度),這些練習我們建議Weka新用戶都能嘗試著做一遍,這有助於你了解Weka究竟能做些什麼。

名人推薦

“本書既合理論又有實踐套用,並且關注實踐是本書的一大特色,對於從事數據挖掘和機器學習方面工作的每位讀者,我強烈推薦本書!”
——Dorian Pyle Data Prcparation for Data Mining和Business Modeling for Data Mining的作者
“本書在數據挖掘技術領域備受推崇,是數據挖掘分析師的必讀之物!”
——Herb Edelstein Two Crowes Consulting 公司首席數據挖掘諮詢顧問
“這是我最喜愛的數據挖掘書籍之一,書中不僅循序漸進地介紹了各種算法,還輔以豐富實例,詳細闡述了如何套用這些算法解決實際數據挖掘問題,本書不但有益於學習使用Weka軟體,而且還會幫助你了解各類機器學習算法。”
——Tom Breur XLNT Consulting 公司首席諮詢顧問
“假如你需要對數據進行分析和理解,本書以及相關的weka工具包是一個絕佳的起步。本書以非常容易理解的方式展示了這門新的學科:既是用來訓練新一代實際工作者和研究者的教科書,同時又能讓像我這樣的專業人員受益。Witten、Frank和Hall熱衰於簡單而優美的解決方案。他們對每個主題都採用這樣的方法:用具體的實例來講解所有的概念,促使讀者首先考慮簡單的技術,當簡單的技術不足以解決問題時,就提升到更為複雜的高級技術。”
——Jim Gray (圖靈獎獲得者)

相關詞條

熱門詞條

聯絡我們