本書系統地介紹了數據預處理、數據倉庫和數據挖掘的原理、方法及應用技術, 以及采用Mahout 對相應的挖掘算法進行實際練習。本書共有11 章, 分為兩大部分。第1 ~7 章為理論部分。第1 章為緒論, 介紹了數據挖掘與知識發現領域中的一些基本理論、研究方法等, 也簡單介紹了Hadoop 生態系統中的Mahout; 第2 ~7 章按知識發現的過程, 介紹數據預處理的方法和技術、數據倉庫的構建與OLAP 技術、數據挖掘原理及算法(包括關聯規則挖掘、聚類分析方法、分類規則挖掘)、常見的數據挖掘工具與產品。第8 ~11 章為實驗部分, 采用Mahout 對數據挖掘各類算法進行實際練習。
本書應用性較強, 與實踐相結合, 以小數據集為例詳細介紹各種挖掘算法, 使讀者更易掌握挖掘算法的基本原理及過程; 使用廣泛的大數據平臺———Hadoop 生態系統中的Mahout 對各種挖掘算法進行實際練習, 實戰性強, 也符合目前數據處理與挖掘的發展趨勢。
本書既便于教師課堂講授, 又便于自學者閱讀, 可作為高等院校高年級學生“數據挖掘技術” “數據倉庫與數據挖掘” “數據處理與智能決策”等課程的教材。
前言
現在的社會是一個高速發展的社會, 科技發達, 信息暢通, 人們之間的交流越來越密切, 生活也越來越方便, 大數據就是這個高科技時代的產物, 并且將會以更多、更復雜、更多樣化的方式持續增長。大數據的復雜化和格式多樣化, 決定了應用服務平臺中針對大數據的服務場景和類型的多樣化, 從而要求應用服務平臺必須融合大數據技術來應對, 傳統的數據存儲和分析技術已無法滿足應用的需求。
目前行業中使用最廣泛的大數據平臺是基于Apache 開源社區版本的Hadoop 生態體系,阿里巴巴、騰訊、百度、臉書(Facebook) 等國內外各大互聯網公司的系統基本都采用Hadoop生態系統, 來完成數據存儲和處理。事實上, 在未來2 ~3 年預計有超過50% 的大數據項目會在Hadoop 框架下運行。
在大數據時代, 大學生應具備一定的大數據處理能力。本書圍繞大數據背景下的數據處理和知識發現問題, 從基本概念入手, 由淺入深、循序漸進地介紹了數據處理與知識發現過程中的數據預處理技術、數據倉庫技術、數據挖掘的基本方法, 并在最后使用最廣泛的大數據平臺———Hadoop 生態系統中的Mahout 對各種挖掘算法進行實際練習, 實戰性強, 也符合目前數據處理與挖掘的發展趨勢。
目前, 數據處理與知識發現及應用方法逐漸成為各高校信息類和管理類本科專業的必修內容。本書作為立足于本科教學的教材, 具有如下特色:
(1) 在邏輯安排上循序漸進, 由淺入深, 便于讀者系統學習。
(2) 內容豐富, 信息量大, 融入了大量本領域的新知識和新方法。
(3) 作為教材, 以小數據集為例詳細介紹各種挖掘算法, 使讀者更易掌握挖掘算法的基本原理及過程; 使用Mahout 實踐各種挖掘算法, 符合大數據的發展趨勢。
(4) 圖文并茂, 形式生動, 可讀性強。
本書的編寫得到了武漢民辦高校合作聯盟、武昌首義學院信息科學與工程學院和機械工業出版社的大力支持和幫助, 在此深表謝意!
由于編者水平有限, 書中難免會出現不足之處, 歡迎讀者批評指證。如果您有更多的寶貴意見, 歡迎發郵件至郵箱xuqin@ wsyu. edu. cn。
編 者
目錄
前 言
上篇 理論部分
第1 章 緒論 2
1. 1 KDD 與數據挖掘 2
1. 1. 1 KDD 的定義 2
1. 1. 2 KDD 過程與數據挖掘 3
1. 2 數據挖掘的對象 4
1. 3 數據挖掘的任務 8
1. 4 Mahout 簡介 12
1. 4. 1 Mahout 12
1. 4. 2 Mahout 算法庫 13
1. 4. 3 Mahout 應用 16
1. 5 小結 17
1. 6 習題 17
第2 章 數據預處理 18
2. 1 數據概述 18
2. 1. 1 屬性與度量 19
2. 1. 2 數據集的類型 23
2. 2 數據預處理 27
2. 2. 1 數據預處理概述 28
2. 2. 2 數據清理 30
2. 2. 3 數據集成 34
2. 2. 4 數據變換 38
2. 2. 5 數據歸約 40
2. 2. 6 離散化與概念分層 48
2. 3 小結 52
2. 4 習題 53
第3 章 數據倉庫 55
3. 1 數據倉庫概述 55
3. 1. 1 從數據庫到數據倉庫 55
3. 1. 2 數據倉庫 56
3. 1. 3 數據倉庫系統結構 59
3. 1. 4 數據倉庫中的名詞 59
3. 2 數據倉庫的ETL 60
3. 2. 1 ETL 的基本概念 60
3. 2. 2 ETL 的工具 60
3. 3 元數據與外部數據 62
3. 3. 1 元數據的定義 62
3. 3. 2 元數據的存儲與管理 63
3. 3. 3 外部數據 64
3. 4 數據倉庫模型及數據倉庫的建立 65
3. 4. 1 多維數據模型 65
3. 4. 2 多維數據模型的建立 67
3. 5 聯機分析處理OLAP 技術 73
3. 5. 1 OLAP 概述 73
3. 5. 2 OLAP 與數據倉庫 75
3. 5. 3 OLAP 的模型 77
3. 5. 4 OLAP 的基本操作 79
3. 6 數據倉庫實例 80
3. 6. 1 數據倉庫的創建 81
3. 6. 2 數據的提取、轉換和加載 83
3. 7 小結 83
3. 8 習題 83
第4 章 關聯規則挖掘 84
4. 1 問題定義 85
4. 1. 1 購物籃分析 85
4. 1. 2 基本術語 85
4. 2 頻繁項集的產生 87
4. 2. 1 先驗原理 88
4. 2. 2 Apriori 算法的頻繁項集產生 90
4. 3 規則產生 94
4. 3. 1 基于置信度的剪枝 94
4. 3. 2 Apriori 算法中規則的產生 94
4. 4 FP-growth 算法 95
4. 5 多層關聯規則和多維關聯規則 99
4. 5. 1 多層關聯規則 99
4. 5. 2 多維關聯規則 102
4. 6 非二元屬性的關聯規則 103
4. 7 關聯規則的評估 104
4. 8 序列模式挖掘算法 106
4. 8. 1 序列模式的概念 106
4. 8. 2 Apriori 類算法———AprioriAll
算法 109
4. 9 小結 114
4. 10 習題 115
第5 章 聚類分析方法 118
5. 1 聚類分析概述 118
5. 1. 1 聚類的定義 118
5. 1. 2 聚類算法的要求 119
5. 1. 3 聚類算法的分類 120
5. 1. 4 相似性的測度 121
5. 2 基于劃分的聚類算法 126
5. 2. 1 基于質心的(Centroid-based)
劃分方法———基本K-means
聚類算法 126
5. 2. 2 K-means 聚類算法的拓展 128
5. 2. 3 基于中心的(Medoid-based)
劃分方法———PAM 算法 130
5. 3 層次聚類算法 133
5. 3. 1 AGNES 算法 136
5. 3. 3 改進算法———BIRCH 算法 137
5. 3. 4 改進算法———CURE 算法 141
5. 4 基于密度的聚類算法 143
5. 5 聚類算法評價 147
5. 6 離群點挖掘 149
5. 6. 1 相關問題概述 149
5. 6. 2 基于距離的方法 150
5. 6. 3 基于相對密度的方法 154
5. 7 小結 158
5. 8 習題 158
第6 章 分類規則挖掘 160
6. 1 分類問題概述 160
6. 2 最近鄰分類法 162
6. 2. 1 KNN 算法原理 162
6. 2. 2 KNN 算法的特點及改進 165
6. 2. 3 基于應用平臺的KNN 算法應用
實例 166
6. 3 決策樹分類方法 167
6. 3. 1 決策樹概述 167
6. 3. 2 信息論 171
6. 3. 3 ID3 算法 172
6. 3. 4 算法改進: C4. 5 算法 176
6. 4 貝葉斯分類方法 180
6. 4. 1 貝葉斯定理 181
6. 4. 2 樸素貝葉斯分類器 183
6. 4. 3 樸素貝葉斯分類方法的改進 185
6. 5 神經網絡算法 188
6. 5. 1 前饋神經網絡概述 188
6. 5. 2 學習前饋神經網絡 189
6. 5. 3 BP 神經網絡模型與學習算法 191
6. 6 回歸分析 193
6. 7 小結 196
6. 8 習題 197
第7 章 數據挖掘工具與產品 198
7. 1 評價數據挖掘產品的標準 198
7. 2 數據挖掘工具簡介 200
7. 3 數據挖掘的可視化 203
7. 3. 1 數據挖掘可視化的過程與方法 203
7. 3. 2 數據挖掘可視化的分類 204
7. 3. 3 數據挖掘可視化的工具 206
7. 4 Weka 207
7. 4. 1 Weka Explorer 208
7. 4. 2 Weka Experimenter 216
7. 4. 3 KnowledgeFlow 219
7. 5 小結 221
7. 6 習題 221
下篇 實驗部分
第8 章 Mahout 入門 224
8. 1 Mahout 安裝前的準備 224
8. 1. 1 安裝JDK 224
8. 1. 2 安裝Hadoop 227
8. 2 Mahout 的安裝 237
8. 3 測試安裝 238
8. 4 小結 239
第9 章 使用Mahout 實踐關聯規則
算法 240
9. 1 FP 樹關聯規則算法 240
9. 1. 1 Mahout 中Parallel Frequent Pattern
Mining 算法的實現原理 240
9. 1. 2 Mahout 的Parallel F