●第1章 導論1
1.1 數據科學的發展歷史1
1.2 數據科學研究的主要問題3
1.3 數據科學的主要方法5
1.4 R語言的優勢7
第2章 數據讀/寫9
2.1 數據的讀入9
2.1.1 直接輸入數據9
2.1.2 讀入R包中的數據10
2.1.3 從外部文件讀入數據10
2.1.4 批量讀入數據15
2.1.5 R語言讀取文件的幾個常錯的問題15
2.2 寫出數據17
2.3 習題18
第3章 數據清洗與預處理19
3.1 數據分類19
3.2 數據清洗20
3.2.1 處理缺失數據20
3.2.2 處理噪聲數據23
3.3 數據變換23
3.4 R語言實現25
3.4.1 數據集的基本操作25
3.4.2 數據集間的操作28
3.4.3 連接數據庫數據29
3.5 習題30
第4章 數據可視化31
4.1 高階繪圖工具——ggplot231
4.1.1 快速繪圖32
4.1.2 使用圖層構建圖像34
4.1.3 分面37
4.2 ECharts239
4.2.1 安裝39
4.2.2 使用40
4.3 習題48
第5章 線性回歸49
5.1 問題的提出49
5.線性回歸50
5.2.線性回歸概述50
5.2.線性回歸的參數估計52
5.2.線性回歸模型的檢驗55
5.2.線性回歸的預測56
5.線性回歸分析57
5.3.線性回歸模型及假定58
5.3.2 參數估計59
5.3.3 模型檢驗60
5.3.4 預測61
5.4 R語言實現63
5.4.線性回歸63
5.4.線性回歸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語言實現80
6.5.1 描述統計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語言實現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 很優子集法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 調整參數選擇113
8.4 基於壓縮估計的組變量選擇113
8.4.1 自然分組結構113
8.4.2 人為分組結構114
8.5 基於壓縮估計的雙層變量選擇115
8.5.1 復合函數型雙層選擇115
8.5.2 稀疏組懲罰型雙層選擇116
8.6 R語言實現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 樹的優缺點137
9.3 Bagging137
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語言實現144
9.6.1 數據介紹144
9.6.2 描述性統計145
9.6.3 分類樹145
9.6.4 Bagging148
9.6.5 隨機森林149
9.6.6 Boosting150
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語言實現168
10.7.1 支持向量分類器168
10.7.2 支持向量機173
10.7.3 Auto數據集175
10.8 習題178
第11章 神經網絡180
11.1 問題的提出181
11.2 神經網絡的基本概念181
11.2.1 神經網絡的—181
11.2.2 神經網絡的結構185
11.2.3 神經網絡的學習186
11.3 神經網絡模型188
11.3.1 感知器188
11.3.2 單層感知器189
11.3.3 BP神經網絡190
11.3.4 Rprop神經網絡193
11.4 R語言實現195
11.4.1 nnet程序包195
11.4.2 neuralnet程序包197
11.4.3 應用案例1:利用nnet程序包分析紙幣鋻別數據198
11.4.4 應用案例2:利用neuralnet程序包分析白葡萄酒的品質200
11.5 習題203
第12章 無監督學習205
12.1 問題的提出205
12.2 聚類分析207
12.2.1 相異度207
12.2.2 K-means聚類209
12.2.3 繫統聚類法211
12.3 主成分分析214
12.3.1 主成分分析的幾何意義214
12.3.2 主成分的數學推導215
12.3.3 主成分回歸217
12.3.4 主成分分析的其他方面217
12.4 因子分析219
12.4.1 因子分析的數學模型219
12.4.2 因子載荷陣的統計意義220
12.4.3 因子分析的其他方面221
12.5 典型相關分析223
12.5.1 典型相關分析原理223
12.5.2 典型相關繫數的顯著性檢驗226
12.5.3 典型相關分析的步驟227
12.6 R語言實現228
12.6.1 聚類分析:移動通信用戶細分228
12.6.2 主成分分析:農村居民消費水平評價233
12.6.3 因子分析:市場調查236
12.6.4 典型相關分析:職業滿意度與職業特性的關繫239
12.7 習題242
第13章 推薦算法243
13.1 關聯規則243
13.1.1 基本概念244
13.1.2 基本分類246
13.1.3 基本方法247
13.2 協同過濾算法249
13.2.1 基於鄰居的協同過濾算法249
13.2.2 基於模型的協同過濾算法253
13.3 R語言實現254
13.3.1 關聯規則254
13.3.2 協同過濾算法259
13.4 習題262
第14章 文本挖掘264
14.1 問題的提出264
14.2 文本挖掘基本流程265
14.2.1 文本數據獲取265
14.2.2 文本特征表示265
14.2.3 文本的特征選擇268
14.2.4 信息挖掘與主題模型269
14.3 R語言實現270
14.3.1 JSS_papers數據集270
14.3.2 拓展案例:房地產網絡輿情分析275
14.4 習題278
第15章 社交網絡分析279
15.1 問題的提出279
15.2 網絡的基本概念280
15.3 網絡特征的描述性分析281
15.3.1 節點度281
15.3.2 節點中心性282
15.3.3 網絡的凝聚性特征283
15.3.4 分割284
15.4 網絡圖的統計模型285
15.4.1 經典隨機圖模型285
15.4.2 廣義隨機圖模型286
15.4.3 指數隨機圖模型287
15.4.4 網絡塊模型287
15.5 關聯網絡推斷288
15.5.1 相關網絡288
15.5.2 偏相關網絡289
15.5.3 高斯圖模型網絡290
15.5.4 Graphic Lasso模型291
15.6 二值型網絡模型294
15.7 R語言實現295
15.7.1 網絡的基本操作295
15.7.2 “豆瓣關注網絡”和“豆瓣朋友網絡”特征分析298
15.7.3 關聯網絡推斷303
15.8 習題308
第16章 並行計算309
16.1 提高R語言的計算速度309
16.2 R語言的並行計算310
16.3 HPC多線程並行計算316
參考文獻321
本書是一本數據科學的入門書籍。每個知識點盡量從實際的應用案例出發,從數據出發,以問題為導向,在解決問題中學習數據挖掘、機器學習等數據科學相關方法。本書將數據讀寫、數據清洗和預處理作為開端,逐漸深入到和數據科學相關的決策樹、支持向量機、神經網絡、無監督學習等知識。此外,結合數據科學的實際應用,書中還講解了推薦算法、文本挖掘和社交網絡分析等熱門實用技術。本書在寫作過程中盡量刪去太過抽樣的理論,讓具有一定高等數學和概率論基礎的讀者就能看得懂。當然,如果讀者對方法原理確實不感興趣,隻是為了用R程序實現某種方法,可以跳過方法隻看案例和程序。本書適合作為高校數據科學、機器學習、數據挖掘、大數據分析等相關專業的研究生和高年級本科的教科書,也適合作為相關企業的數據科學家、數據挖掘工程師、數據分析師及數據科學的愛好者等的工具書。