本書是一本數(shù)據(jù)科學的入門書籍。每個知識點盡量從實際的應用案例出發(fā),從數(shù)據(jù)出發(fā),以問題為導向,在解決問題中學習數(shù)據(jù)挖掘、機器學習等數(shù)據(jù)科學相關方法。本書將數(shù)據(jù)讀寫、數(shù)據(jù)清洗和預處理作為開端,逐漸深入到和數(shù)據(jù)科學相關的決策樹、支持向量機、神經網(wǎng)絡、無監(jiān)督學習等知識。此外,結合數(shù)據(jù)科學的實際應用,書中還講解了推薦算法、文本挖掘和社交網(wǎng)絡分析等熱門實用技術。本書在寫作過程中盡量刪去太過抽樣的理論,讓具有一定高等數(shù)學和概率論基礎的讀者就能看得懂。當然,如果讀者對方法原理確實不感興趣,只是為了用R程序實現(xiàn)某種方法,可以跳過方法只看案例和程序。本書適合作為高校數(shù)據(jù)科學、機器學習、數(shù)據(jù)挖掘、大數(shù)據(jù)分析等相關專業(yè)的研究生和高年級本科的教科書,也適合作為相關企業(yè)的數(shù)據(jù)科學家、數(shù)據(jù)挖掘工程師、數(shù)據(jù)分析師及數(shù)據(jù)科學的愛好者等的工具書。
方匡南,廈門大學信息科學學院教授,多年從事大數(shù)據(jù)及相關領域研究與教學,著有《R數(shù)據(jù)分析》等多部相關作品。
第1章 導論 1
1.1 數(shù)據(jù)科學的發(fā)展歷史 1
1.2 數(shù)據(jù)科學研究的主要問題 3
1.3 數(shù)據(jù)科學的主要方法 5
1.4 R語言的優(yōu)勢 7
第2章 數(shù)據(jù)讀/寫 9
2.1 數(shù)據(jù)的讀入 9
2.1.1 直接輸入數(shù)據(jù) 9
2.1.2 讀入R包中的數(shù)據(jù) 10
2.1.3 從外部文件讀入數(shù)據(jù) 10
2.1.4 批量讀入數(shù)據(jù) 15
2.1.5 R語言讀取文件的幾個常錯的問題 15
2.2 寫出數(shù)據(jù) 17
2.3 習題 18
第3章 數(shù)據(jù)清洗與預處理 19
3.1 數(shù)據(jù)分類 19
3.2 數(shù)據(jù)清洗 20
3.2.1 處理缺失數(shù)據(jù) 20
3.2.2 處理噪聲數(shù)據(jù) 23
3.3 數(shù)據(jù)變換 23
3.4 R語言實現(xiàn) 25
3.4.1 數(shù)據(jù)集的基本操作 25
3.4.2 數(shù)據(jù)集間的操作 28
3.4.3 連接數(shù)據(jù)庫數(shù)據(jù) 29
3.5 習題 30
第4章 數(shù)據(jù)可視化 31
4.1 高階繪圖工具——ggplot2 31
4.1.1 快速繪圖 32
4.1.2 使用圖層構建圖像 34
4.1.3 分面 37
4.2 ECharts2 39
4.2.1 安裝 39
4.2.2 使用 40
4.3 習題 48
第5章 線性回歸 49
5.1 問題的提出 49
5.2 一元線性回歸 50
5.2.1 一元線性回歸概述 50
5.2.2 一元線性回歸的參數(shù)估計 52
5.2.3 一元線性回歸模型的檢驗 55
5.2.4 一元線性回歸的預測 56
5.3 多元線性回歸分析 57
5.3.1 多元線性回歸模型及假定 58
5.3.2 參數(shù)估計 59
5.3.3 模型檢驗 60
5.3.4 預測 61
5.4 R語言實現(xiàn) 63
5.4.1 一元線性回歸 63
5.4.2 多元線性回歸 66
5.5 習題 67
第6章 線性分類 69
6.1 問題的提出 69
6.2 Logistic模型 70
6.2.1 線性概率模型 70
6.2.2 Probit模型 71
6.2.3 Logit模型原理 72
6.2.4 邊際效應分析 73
6.2.5 最大似然估計(MLE) 73
6.2.6 似然比檢驗 74
6.3 判別分析 74
6.3.1 Na?ve Bayes判別分析 75
6.3.2 線性判別分析 76
6.3.3 二次判別分析 78
6.4 分類問題評價準則 78
6.5 R語言實現(xiàn) 80
6.5.1 描述統(tǒng)計 80
6.5.2 Logistic模型 81
6.5.3 判別分析 87
6.5.4 模型比較 90
6.6 習題 92
第7章 重抽樣 94
7.1 問題的提出 94
7.2 基本概念 94
7.2.1 訓練誤差和測試誤差 95
7.2.2 偏差和方差 95
7.3 交叉驗證法 96
7.3.1 驗證集方法 97
7.3.2 留一交叉驗證法 97
7.3.3 K折交叉驗證法 98
7.4 自助法 99
7.5 R語言實現(xiàn) 100
7.5.1 驗證集方法 100
7.5.2 留一交叉驗證法 102
7.5.3 K折交叉驗證法 102
7.5.4 自助法 103
7.6 習題 104
第8章 模型選擇與正則化 105
8.1 問題的提出 105
8.2 子集選擇法 106
8.2.1 最優(yōu)子集法 106
8.2.2 逐步選擇法 106
8.2.3 模型選擇 108
8.3 基于壓縮估計的逐個變量選擇 109
8.3.1 LASSO懲罰 110
8.3.2 SCAD懲罰 111
8.3.3 MCP懲罰 112
8.3.4 調整參數(shù)選擇 113
8.4 基于壓縮估計的組變量選擇 113
8.4.1 自然分組結構 113
8.4.2 人為分組結構 114
8.5 基于壓縮估計的雙層變量選擇 115
8.5.1 復合函數(shù)型雙層選擇 115
8.5.2 稀疏組懲罰型雙層選擇 116
8.6 R語言實現(xiàn) 117
8.6.1 子集選擇法 117
8.6.2 模型選擇 120
8.6.3 組模型選擇 122
8.6.4 雙層模型選擇 126
8.7 習題 128
第9章 決策樹與組合學習 129
9.1 問題的提出 129
9.2 決策樹 130
9.2.1 基本概念 130
9.2.2 分類樹 133
9.2.3 回歸樹 135
9.2.4 樹的優(yōu)缺點 137
9.3 Bagging 137
9.3.1 基本算法 137
9.3.2 袋外誤差估計 138
9.3.3 變量重要性的度量 139
9.4 隨機森林 140
9.5 提升法 142
9.5.1 Adaboost算法 142
9.5.2 GBDT算法 143
9.5.3 XGBoost算法 143
9.6 R語言實現(xiàn) 144
9.6.1 數(shù)據(jù)介紹 144
9.6.2 描述性統(tǒng)計 145
9.6.3 分類樹 145
9.6.4 Bagging 148
9.6.5 隨機森林 149
9.6.6 Boosting 150
9.7 習題 155
第10章 支持向量機 156
10.1 問題的提出 156
10.2 最大間隔分類器 157
10.2.1 使用分割超平面分類 157
10.2.2 構建最大間隔分類器 159
10.2.3 線性不可分的情況 160
10.3 支持向量分類器 161
10.3.1 使用軟間隔分類 161
10.3.2 構建支持向量分類器 161
10.4 支持向量機 163
10.4.1 使用非線性決策邊界分類 163
10.4.2 構建支持向量機 165
10.5 與Logistic回歸的關系 166
10.6 支持向量回歸 167
10.7 R語言實現(xiàn) 168
10.7.1 支持向量分類器 168
10.7.2 支持向量機 173
10.7.3 Auto數(shù)據(jù)集 175
10.8 習題 178
第11章 神經網(wǎng)絡 180
11.1 問題的提出 181
11.2 神經網(wǎng)絡的基本概念 181
11.2.1 神經網(wǎng)絡的基本單元——神經元 181
11.2.2 神經網(wǎng)絡的結構 185
11.2.3 神經網(wǎng)絡的學習 186
11.3 神經網(wǎng)絡模型 188
11.3.1 單神經元感知器 188
11.3.2 單層感知器 189
11.3.3 BP神經網(wǎng)絡 190
11.3.4 Rprop神經網(wǎng)絡 193
11.4 R語言實現(xiàn) 195
11.4.1 nnet程序包 195
11.4.2 neuralnet程序包 197
11.4.3 應用案例1:利用nnet程序包分析紙幣鑒別數(shù)據(jù) 198
11.4.4 應用案例2:利用neuralnet程序包分析白葡萄酒的品質 200
11.5 習題 203
第12章 無監(jiān)督學習 205
12.1 問題的提出 205
12.2 聚類分析 207
12.2.1 相異度 207
12.2.2 K-means聚類 209
12.2.3 系統(tǒng)聚類法 211
12.3 主成分分析 214
12.3.1 主成分分析的幾何意義 214
12.3.2 主成分的數(shù)學推導 215
12.3.3 主成分回歸 217
12.3.4 主成分分析的其他方面 217
12.4 因子分析 219
12.4.1 因子分析的數(shù)學模型 219
12.4.2 因子載荷陣的統(tǒng)計意義 220
12.4.3 因子分析的其他方面 221
12.5 典型相關分析 223
12.5.1 典型相關分析原理 223
12.5.2 典型相關系數(shù)的顯著性檢驗 226
12.5.3 典型相關分析的步驟 227
12.6 R語言實現(xiàn) 228
12.6.1 聚類分析:移動通信用戶細分 228
12.6.2 主成分分析:農村居民消費水平評價 233
12.6.3 因子分析:市場調查 236
12.6.4 典型相關分析:職業(yè)滿意度與職業(yè)特性的關系 239
12.7 習題 242
第13章 推薦算法 243
13.1 關聯(lián)規(guī)則 243
13.1.1 基本概念 244
13.1.2 基本分類 246
13.1.3 基本方法 247
13.2 協(xié)同過濾算法 249
13.2.1 基于鄰居的協(xié)同過濾算法 249
13.2.2 基于模型的協(xié)同過濾算法 253
13.3 R語言實現(xiàn) 254
13.3.1 關聯(lián)規(guī)則 254
13.3.2 協(xié)同過濾算法 259
13.4 習題 262
第14章 文本挖掘 264
14.1 問題的提出 264
14.2 文本挖掘基本流程 265
14.2.1 文本數(shù)據(jù)獲取 265
14.2.2 文本特征表示 265
14.2.3 文本的特征選擇 268
14.2.4 信息挖掘與主題模型 269
14.3 R語言實現(xiàn) 270
14.3.1 JSS_papers數(shù)據(jù)集 270
14.3.2 拓展案例:房地產網(wǎng)絡輿情分析 275
14.4 習題 278
第15章 社交網(wǎng)絡分析 279
15.1 問題的提出 279
15.2 網(wǎng)絡的基本概念 280
15.3 網(wǎng)絡特征的描述性分析 281
15.3.1 節(jié)點度 281
15.3.2 節(jié)點中心性 282
15.3.3 網(wǎng)絡的凝聚性特征 283
15.3.4 分割 284
15.4 網(wǎng)絡圖的統(tǒng)計模型 285
15.4.1 經典隨機圖模型 285
15.4.2 廣義隨機圖模型 286
15.4.3 指數(shù)隨機圖模型 287
15.4.4 網(wǎng)絡塊模型 287
15.5 關聯(lián)網(wǎng)絡推斷 288
15.5.1 相關網(wǎng)絡 288
15.5.2 偏相關網(wǎng)絡 289
15.5.3 高斯圖模型網(wǎng)絡 290
15.5.4 Graphic Lasso模型 291
15.6 二值型網(wǎng)絡模型 294
15.7 R語言實現(xiàn) 295
15.7.1 網(wǎng)絡的基本操作 295
15.7.2 “豆瓣關注網(wǎng)絡”和“豆瓣朋友網(wǎng)絡”特征分析 298
15.7.3 關聯(lián)網(wǎng)絡推斷 303
15.8 習題 308
第16章 并行計算 309
16.1 提高R語言的計算速度 309
16.2 R語言的并行計算 310
16.3 HPC多線程并行計算 316
參考文獻 321