本書主要根據(jù)作者近幾年在清華大學面向研究生和本科生開設的數(shù)據(jù)挖掘:方法與應用課程的教學實踐與積累,參考近幾年國外著名大學相關課程的教學體系編寫而成。本書系統(tǒng)地介紹數(shù)據(jù)挖掘的基本概念和基本原理方法;結合一些典型的應用實例展示用數(shù)據(jù)挖掘的思維方法求解問題的一般性模式與思路。 本書可作為有一定數(shù)據(jù)結構、數(shù)據(jù)庫和程序設計基礎的研究生或本科生開展數(shù)據(jù)挖掘知識學習和研究的入門性教材與參考讀物。
了解數(shù)據(jù)挖掘的基本概念,掌握數(shù)據(jù)分析技術,開展數(shù)據(jù)挖掘相關領域的工作和學習研究。
數(shù)據(jù)挖掘: 方法與應用課程是清華大學計算機系面向清華大學全校非信息類工科專業(yè)學生所開設的公選課程。自從2011年春季學期開設課程以來,課程內容、教學體系和作業(yè)考核方式等方面的教學改革工作一直在進行探索。課程教學團隊陸續(xù)完成了如下幾大方面的教學改革探索。
首先,教學團隊根據(jù)早期的教學體例,在2014年編著出版了課程的配套教材《數(shù)據(jù)挖掘: 方法與應用》。
其次,教學團隊根據(jù)課程教學案例的展示情況,在2017年精選了一批有代表性的跨專業(yè)背景的優(yōu)秀課程作業(yè)案例并結集出版教學參考書《數(shù)據(jù)挖掘: 方法與應用應用案例》。至此,課程系列化的教材初步形成。2020年上述系列化教材獲得清華大學優(yōu)秀教材二等獎。
第三,在課件體例的編排和內容擴展方面,第1版教學課件于2014年初步成型,其中,中文版課件通過配套圖書向外界共享。從2019年開始利用連續(xù)三年的教學實踐,逐步擴充了的教學內容,并形成新版的教學課件,特別擴充了數(shù)據(jù)挖掘中的數(shù)據(jù)獲取、深度學習和數(shù)據(jù)可視化等方面的專題性內容,使整體教學課件內容的體系更加豐富和完善。
第四,在課程作業(yè)環(huán)節(jié)的探索方面,課程從2019年開始探索將工業(yè)界的實際數(shù)據(jù)挖掘任務以高難度挑戰(zhàn)作業(yè)的形式引入到課程的教學環(huán)節(jié),讓課堂上學有余力的學生進一步提升分析問題和解決問題的能力。該項教學改革方面的探索也獲得清華大學教育教學改革項目的支持。
第五,在課程教學內容的改革創(chuàng)新上,特別是課程的高級專題講授環(huán)節(jié),多次邀請了工業(yè)界在行業(yè)數(shù)據(jù)挖掘領域卓有建樹的企業(yè)CTO進行行業(yè)數(shù)據(jù)挖掘案例的分享,以擴展同學們在數(shù)據(jù)挖掘領域的視野,加深對于面對問題分析的洞察力,效果顯著。
隨著時代和行業(yè)應用的發(fā)展,對于數(shù)據(jù)挖掘課程提出了更多、更新、更高的教學要求。為了應對這樣的變化,《數(shù)據(jù)挖掘: 方法與應用》(第2版)在原書的基礎上進行了如下內容的擴展。
首先,新補充了數(shù)據(jù)獲取章節(jié)。由于傳統(tǒng)的數(shù)據(jù)挖掘工作都是假設數(shù)據(jù)已經(jīng)準備好的前提下而開展的,但在實際應用研發(fā)工作中,數(shù)據(jù)獲取仍然是一個工程技術上面臨的重大挑戰(zhàn)。為了克服由于數(shù)據(jù)不足而帶來的問題,本書結合數(shù)據(jù)挖掘領域近幾年研發(fā)的進展情況,概述了數(shù)據(jù)獲取的主要方法和相關的技術手段,以作為未來深入開展數(shù)據(jù)獲取的引導性內容。
其次,新補充了深度學習章節(jié)。近年來,以深度學習為代表的數(shù)據(jù)驅動類型的機器學習方法得到了各方面的廣泛應用。相比于傳統(tǒng)的機器學習方法,深度學習方法能夠學習出有效的分類特征,并獲得更高的分類精度。基于此,本書第2版中補充了深度學習一章,作為學習深度學習方法的綜述性引導。
第三,新補充了數(shù)據(jù)可視化章節(jié)。數(shù)據(jù)挖掘的目的是為了發(fā)現(xiàn)數(shù)據(jù)中隱藏的有價值的知識,而以往發(fā)現(xiàn)的知識常常表現(xiàn)為一種抽象形式,決策者很難有直觀的理解。為此,數(shù)據(jù)挖掘領域常常會采用數(shù)據(jù)可視化的方法來直觀地呈現(xiàn)數(shù)據(jù)挖掘與分析的結果;诖耍緯2版中補充數(shù)據(jù)可視化一章內容,以此起到學習數(shù)據(jù)可視化方法與技術的引領目的。
在上述內容擴展的基礎上,形成了今天《數(shù)據(jù)挖掘: 方法與應用》(第2版)呈現(xiàn)在各位讀者面前,希望能對新發(fā)展和新應用背景下開展數(shù)據(jù)挖掘教學和相關實踐工作起到導引的作用。
另外,本書第1版、第2版和配套案例教材的相關共享資料(課件、代碼、數(shù)據(jù)集等)將在開源共享社區(qū)github和清華大學出版社官網(wǎng)www.tup.com.cn同步發(fā)布,并即時更新。歡迎各位讀者留言與反饋,或發(fā)郵件至bailj@tup.tsinghua.edu.cn。
本書第2版成稿之際,感謝2020年春季、2021年春季課程助教余文夢、吳至婧同學為本書內容整理付出的巨大努力;感謝趙少杰、陳小飛同學為相關材料收集、文獻調研和書稿排版做出的貢獻。
作者2021年7月6日第1版前言
近年來,隨著計算機硬件資源成本的持續(xù)下降,軟件開發(fā)技術的不斷進步,基于不同領域的大數(shù)據(jù)(Big Data)研究與應用性研發(fā)工作正在如火如荼地開展起來。作為大數(shù)據(jù)挖掘、分析與處理的關鍵方法與技術之一,數(shù)據(jù)挖掘正在被不同的專業(yè)領域所關注,數(shù)據(jù)挖掘也逐漸演變成一門具有通用性和基礎性的數(shù)據(jù)處理方法與技術。正是在這樣的大環(huán)境背景之下,作者于2011年春季學期開始開設了面向清華大學非計算機專業(yè)學生的專業(yè)課程數(shù)據(jù)挖掘: 方法與應用。開設這門課程的主要目的是為了讓不同專業(yè)領域的學生能夠掌握數(shù)據(jù)挖掘的基本概念、基本方法和基本算法實現(xiàn)技術,能夠針對不同專業(yè)領域的數(shù)據(jù)挖掘與分析問題,開展相應的數(shù)據(jù)挖掘與分析工作。
參照國外相關大學的教材、課件和應用實例,本書內容的編排順序主體上是按照一個典型的知識發(fā)現(xiàn)過程進行編排的,分別是基本概念、數(shù)據(jù)預處理、數(shù)據(jù)倉庫構建、關聯(lián)規(guī)則挖掘與相關性分析、聚類分析(無監(jiān)督的學習分類)、分類方法(有監(jiān)督的學習分類)。在相關方法與算法講解的基礎之上,進一步展示用本書所介紹的數(shù)據(jù)挖掘與相關知識開展的一個快速消費品領域消費者調查問卷的挖掘與分析實例,以及在此基礎上所構建的一個消費者皮膚狀況預測模型。
作為面向非計算機專業(yè)學生的課程,本書以介紹概念和講解方法的主要思想為主。對于有進一步深入學習需求的學生,建議進一步研讀高級機器學習、高級數(shù)據(jù)挖掘等知識內容相關的書籍。在課程教學計劃安排上,建議理論方法講解安排32學時,同時安排16學時的課程實踐與討論環(huán)節(jié),以進一步增強學生在數(shù)據(jù)挖掘與分析方面的應用實戰(zhàn)能力,提升未來對于本專業(yè)領域數(shù)據(jù)挖掘與分析的能力。
由于作者水平所限,本書在編寫過程中紕漏和疏忽之處在所難免,望讀者不吝指正。
徐華2014年初春于清華園
徐華,清華大學計算機系副教授,博士生導師。長期擔任數(shù)據(jù)挖掘、網(wǎng)絡產(chǎn)品設計等相關本科研究生課程的教學工作。主要從事智能機器人相關的智能優(yōu)化調度、智能交互方面的研究工作。目前發(fā)表國際期刊論文40篇,領域國際會議論文70篇,獲得國家科技進步二等獎一次,省部級政府科技獎勵4次,行業(yè)協(xié)會科技發(fā)明一等獎2次。
第1章緒論1
1.1應用背景1
1.1.1商業(yè)上的驅動2
1.1.2科學研究上的驅動2
1.1.3數(shù)據(jù)挖掘伴隨著數(shù)據(jù)庫數(shù)據(jù)庫技術而出現(xiàn)2
1.2什么是數(shù)據(jù)挖掘3
1.2.1基本描述3
1.2.2知識發(fā)現(xiàn)知識發(fā)現(xiàn)4
1.3數(shù)據(jù)挖掘的主要技術5
1.4數(shù)據(jù)挖掘的主要研究內容7
1.5數(shù)據(jù)挖掘面臨的主要問題10
1.6數(shù)據(jù)挖掘相關的資料11
1.7本書的總體章節(jié)安排12
1.8小結13
參考文獻13
第2章數(shù)據(jù)獲取15
2.1引言15
2.2背景介紹15
2.3數(shù)據(jù)采集17
2.3.1數(shù)據(jù)發(fā)現(xiàn)17
2.3.2數(shù)據(jù)增強18
2.3.3數(shù)據(jù)生成18
2.4數(shù)據(jù)標注19
2.4.1利用現(xiàn)有標簽19
2.4.2基于眾包技術19
2.4.3使用弱監(jiān)督學習的方法20
2.5提升已有數(shù)據(jù)和模型20
2.5.1提升已有數(shù)據(jù)20
2.5.2提升已有模型21
2.6技術選擇指南21
2.7小結21
參考文獻21
第3章數(shù)據(jù)預處理23
3.1引言23
3.2數(shù)據(jù)預處理的基本概念23
3.2.1數(shù)據(jù)的基本概念23
3.2.2為什么要進行數(shù)據(jù)預處理26
3.2.3數(shù)據(jù)預處理的任務27
3.3數(shù)據(jù)的描述27
3.3.1描述數(shù)據(jù)的中心趨勢28
3.3.2描述數(shù)據(jù)的分散程度30
3.3.3描述數(shù)據(jù)的其他方式31
3.4數(shù)據(jù)清洗33
3.4.1數(shù)據(jù)缺失的處理33
3.4.2數(shù)據(jù)清洗34
3.5數(shù)據(jù)集成和轉換36
3.5.1數(shù)據(jù)集成36
3.5.2數(shù)據(jù)冗余36
3.5.3數(shù)據(jù)轉換38
3.6數(shù)據(jù)歸約和變換39
3.6.1數(shù)據(jù)歸約39
3.6.2數(shù)據(jù)離散化42
3.6.3概念層次生成43
3.7小結44
參考文獻45
第4章數(shù)據(jù)倉庫46
4.1引言46
4.2數(shù)據(jù)庫基本概念回顧46
4.2.1數(shù)據(jù)庫簡介47
4.2.2表、記錄和域47
4.2.3數(shù)據(jù)庫管理系統(tǒng)47
4.3數(shù)據(jù)倉庫簡介48
4.3.1數(shù)據(jù)倉庫特點48
4.3.2數(shù)據(jù)倉庫概念49
4.3.3數(shù)據(jù)倉庫作用50
4.3.4數(shù)據(jù)倉庫與DBMS對比50
4.3.5分離數(shù)據(jù)倉庫的原因51
4.4多維數(shù)據(jù)模型52
4.4.1數(shù)據(jù)立方體52
4.4.2概念模型54
4.4.3概念分層概念分層57
4.4.4典型OLAP操作58
4.4.5星型網(wǎng)絡的查詢模型60
4.5數(shù)據(jù)倉庫結構61
4.5.1數(shù)據(jù)倉庫設計61
4.5.2多層體系結構63
4.6數(shù)據(jù)倉庫的功能64
4.6.1數(shù)據(jù)立方體的有效計算64
4.6.2索引OLAP數(shù)據(jù)69
4.6.3OLAP查詢的有效處理70
4.7從數(shù)據(jù)倉庫到數(shù)據(jù)挖掘70
4.7.1數(shù)據(jù)倉庫應用70
4.7.2從OLAP到OLAM71
4.8小結73
參考文獻73
第5章相關性與關聯(lián)規(guī)則75
5.1基本概念75
5.1.1潛在的應用75
5.1.2購物籃問題購物籃問題76
5.1.3頻繁模式分析、閉項集和關聯(lián)規(guī)則76
5.2頻繁項集挖掘方法78
5.2.1Apriori算法78
5.2.2由頻繁項集產(chǎn)生關聯(lián)規(guī)則80
5.2.3提高Apriori的效率81
5.2.4挖掘頻繁項集的模式增長方法82
5.3多種關聯(lián)規(guī)則挖掘關聯(lián)規(guī)則挖掘84
5.3.1挖掘多層關聯(lián)規(guī)則84
5.3.2挖掘多維關聯(lián)規(guī)則86
5.3.3挖掘量化關聯(lián)規(guī)則87
5.4從關聯(lián)分析到相關分析相關分析88
5.4.1相關分析89
5.4.2強規(guī)則不一定是有價值的89
5.4.3挖掘高度關聯(lián)的模式90
5.5基于約束的頻繁模式挖掘91
5.5.1關聯(lián)規(guī)則的元規(guī)則制導挖掘91
5.5.2基于約束的模式生成: 模式空間剪枝和數(shù)據(jù)空間剪枝92
5.6小結94
參考文獻94
第6章分類和預測100
6.1引言100
6.2基本概念100
6.2.1什么是分類100
6.2.2什么是預測102
6.3關于分類和預測的問題102
6.3.1準備分類和預測的數(shù)據(jù)102
6.3.2評價分類和預測方法102
6.4決策樹決策樹分類103
6.4.1決策樹歸納104
6.4.2屬性選擇度量104
6.4.3提取分類規(guī)則107
6.4.4基本決策樹歸納的增強108
6.4.5在大數(shù)據(jù)集中的分類108
6.5貝葉斯分類108
6.5.1貝葉斯定理109
6.5.2樸素貝葉斯分類樸素貝葉斯分類109
6.5.3貝葉斯信念網(wǎng)絡貝葉斯信念網(wǎng)絡111
6.5.4貝葉斯網(wǎng)絡學習112
6.6神經(jīng)網(wǎng)絡113
6.6.1神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡簡介114
6.6.2多層神經(jīng)網(wǎng)絡114
6.6.3神經(jīng)網(wǎng)絡訓練115
6.6.4后向傳播115
6.6.5網(wǎng)絡剪枝和規(guī)則抽取117
6.7支持向量機118
6.7.1數(shù)據(jù)線性可分的情況118
6.7.2數(shù)據(jù)線性不可分的情況120
6.7.3支持向量機和神經(jīng)網(wǎng)絡的對比122
6.8關 聯(lián) 分 類關聯(lián)分類122
6.8.1為什么有效123
6.8.2常見關聯(lián)分類算法123
6.9分類準確率123
6.9.1估計錯誤率124
6.9.2裝袋裝袋和提升提升124
6.10小結126
參考文獻126
第7章深度學習129
7.1引言129
7.2卷積神經(jīng)網(wǎng)絡129
7.2.1卷積運算129
7.2.2卷積層130
7.2.3池化層132
7.2.4典型結構及其應用133
7.3循環(huán)神經(jīng)網(wǎng)絡134
7.3.1循環(huán)神經(jīng)網(wǎng)絡135
7.3.2長短期記憶神經(jīng)網(wǎng)絡135
7.3.3門控循環(huán)單元網(wǎng)絡136
7.3.4雙向循環(huán)神經(jīng)網(wǎng)絡137
7.3.5典型結構及其應用138
7.4常用的深度學習框架139
7.5小結139
參考文獻139
第8章聚類分析141
8.1聚類分析的定義和數(shù)據(jù)類型141
8.1.1聚類的定義141
8.1.2聚類分析和主要應用142
8.1.3聚類分析方法的性能指標143
8.1.4聚類分析使用的數(shù)據(jù)類型143
8.2聚類分析方法分類與相似性質量145
8.2.1聚類分析方法分類145
8.2.2連續(xù)變量的距離與相似性度量146
8.2.3二元變量與標稱變量的相似性度量148
8.2.4序數(shù)和比例標度變量的相似性度量149
8.2.5混合類型變量的相似性度量149
8.3基于分割的聚類150
8.4基于層次的聚類153
8.5基于密度的聚類157
8.6基于網(wǎng)格的聚類158
8.7基于模型的聚類159
8.8離群點離群點檢測離群點檢測160
8.9小結161
參考文獻161
第9章數(shù)據(jù)可視化163
9.1引言163
9.2數(shù)據(jù)可視化的參考模型163
9.3數(shù)據(jù)可視化的基本準則164
9.3.1正確性164
9.3.2高效性165
9.3.3可觀性166
9.44類典型數(shù)據(jù)的可視化166
9.4.1統(tǒng)計數(shù)據(jù)可視化166
9.4.2文本數(shù)據(jù)可視化167
9.4.3網(wǎng)絡關系數(shù)據(jù)可視化168
9.4.4時空數(shù)據(jù)可視化170
9.5小結170
參考文獻171
第10章數(shù)據(jù)挖掘應用172
10.1引言172
10.2應用研發(fā)思路173
10.3預處理方法173
10.3.1基礎數(shù)據(jù)說明173
10.3.2數(shù)字化方法說明173
10.3.3深入一步的預處理方法175
10.3.4基本數(shù)據(jù)分布情況說明177
10.3.5初步分析結果178
10.3.6小結181
10.4特征提取方法181
10.4.18種特征提取方法181
10.4.2特征總體排名策略182
10.4.3終關鍵特征183
10.4.4特征提取與分析結論187
10.4.5小結188
10.5皮膚特征預測模型188
10.5.1預測方法回顧189
10.5.2預測結果分析與結論190
10.5.3小結200
10.6小結201
參考文獻202
附錄203
附錄A插圖索引203
附錄B表格索引205
附錄C算法索引207
附錄D關鍵詞索引207