本書通過循序漸進的介紹,讓讀者借助基礎以及先進的數(shù)據(jù)挖掘技術,幫助一個虛擬的商業(yè)公司解決對其造成負面影響的真實欺詐案例。通過全程參與這一極不尋常的數(shù)據(jù)挖掘案例,讀者將會掌握數(shù)據(jù)挖掘方面的強大技能。 本書非常適合想通過R語言快速了解數(shù)據(jù)挖掘、預測分析、商業(yè)分析等領域的數(shù)據(jù)科學家和數(shù)據(jù)分析員閱讀,也適合高等院校數(shù)據(jù)挖掘相關專業(yè)師生和對數(shù)據(jù)挖掘感興趣的技術人員參考。
通過本書的學習,讀者能夠:
·掌握數(shù)據(jù)挖掘的相關軟件包,如dplyr、ggplot2等。
·學會如何通過數(shù)據(jù)挖掘標準流程(CRISP-DM)來有效地組織數(shù)據(jù)挖掘項目。
·對數(shù)據(jù)執(zhí)行數(shù)據(jù)清理和數(shù)據(jù)驗證操作—為數(shù)據(jù)挖掘活動準備數(shù)據(jù)。
·以數(shù)值方式和圖形方式分別執(zhí)行探索性數(shù)據(jù)分析。
·開發(fā)簡單線性回歸模型、多元線性回歸模型以及邏輯回歸模型。
·應用基本的集成學習技術整合不同數(shù)據(jù)挖掘模型的結果。
·對非結構化的PDF文件和文本數(shù)據(jù)執(zhí)行文本挖掘及分析。
·編制有效傳達數(shù)據(jù)分析目標、方法和洞察的報告。
[意]安德烈亞·奇里洛(Andrea Cirillo):目前就職于意大利聯(lián)合圣保羅銀行(Intesa Sanpaolo Banking Group),擔任審計量化分析師一職。在此之前,他曾在德勤會計師事務所(Deloitte Touche Tohmatsu)從事財務和外部審計相關工作,以及在 FNM(一家意大利上市公司)從事內(nèi)部審計相關工作。他目前的主要工作職責涉及信用風險管理模型的評估及改進—主要圍繞巴塞爾協(xié)議Ⅲ這一領域。他與弗朗西絲卡(Francesca)結婚,并共同養(yǎng)育四個子女,他們的名字名別是:托馬索(Tommaso)、吉安娜(Gianna)、扎卡里亞(Zaccaria)和菲利波(Filippo)。安德里亞(Andrea)曾編寫并供稿一些有用的 R語言軟件包,包括 updateR、ramazon 和 paletteR,此外,他會定期地分享一些關于 R 語言編程的深刻見解和教程。他的研究工作主要聚焦于通過建模定制算法以及開發(fā)交互式應用程序,實現(xiàn) R 語言在風險管理和欺詐檢測領域中的應用。
第 1 章 為何選擇 R 語言 1
1.1 什么是 R 語言 1
1.2 R 語言的發(fā)展歷史 2
1.3 R 語言的優(yōu)勢 2
1.3.1 開源 3
1.3.2 插件就緒 3
1.3.3 數(shù)據(jù)可視化友好 4
1.4 安裝 R 語言、編寫 R 語言
代碼 5
1.4.1 下載 R 語言軟件包 5
1.4.2 應用于 Windows 平臺和
MacOS 平臺的 R 語言
軟件包 5
1.4.3 應用于 Linux 平臺的
R 語言軟件包 6
1.4.4 基礎版本 R 語言包安裝的
主要組件 6
1.4.5 編寫 R 語言及運行 R 語言
代碼的替代平臺 8
1.5 R 語言的基本概念 11
1.5.1 R 語言初級入門 11
1.5.2 向量(Vector) 14
1.5.3 列表(Lists) 15
1.5.4 數(shù)據(jù)幀(Data frames) 17
1.5.5 函數(shù)(Functions) 18
1.6 R 語言的劣勢以及如何克服
這些劣勢 20
1.6.1 高效學習 R 語言,
最小化精力投入 21
1.6.2 通過 R 語言操作大型
數(shù)據(jù)集 24
1.7 更多參考 25
1.8 小結 25
第 2 章 數(shù)據(jù)挖掘入門-讀者銀行賬戶
數(shù)據(jù)分析 26
2.1 獲取并準備銀行數(shù)據(jù) 26
2.1.1 數(shù)據(jù)模型 27
2.2 使用數(shù)據(jù)透視表匯總數(shù)據(jù) 27
2.2.1 管道操作符簡介 29
2.2.2 dplyr 程序包簡介 30
2.2.3 安裝必要程序包并將
個人數(shù)據(jù)加載到 R 語言
環(huán)境中 31
2.2.4 確定每月和每天的
費用總額 32
2.4 使用 ggplot2 程序包對數(shù)據(jù)進行
可視化處理 36
2.4.1 數(shù)據(jù)可視化基本
原理 36
2.4.2 使用 ggplot 程序包來進行
數(shù)據(jù)可視化 42
2.5 更多參考 47
2.6 小結 47
第 3 章 數(shù)據(jù)挖掘進階-數(shù)據(jù)挖掘標準
流程(CRISP-DM)方法論 49
3.1 數(shù)據(jù)挖掘標準流程(CRISP-DM)
方法論之數(shù)據(jù)挖掘周期 50
3.2 業(yè)務理解 51
3.3 數(shù)據(jù)理解 51
3.3.1 數(shù)據(jù)收集 52
3.3.2 數(shù)據(jù)描述 52
3.3.3 數(shù)據(jù)探索 53
3.4 數(shù)據(jù)準備 57
3.5 建模 57
3.5.1 定義數(shù)據(jù)建模策略 58
3.6 評估 59
3.6.1 聚類評估 59
3.6.2 分類評估 60
3.6.3 回歸評估 60
3.6.4 如何判斷模型性能的
充分性 61
3.7 部署 62
3.7.1 部署計劃開發(fā) 62
3.7.2 維護計劃開發(fā) 63
3.8 小結 64
第4 章 保持室內(nèi)整潔-數(shù)據(jù)挖掘架構 65
4.1 概述 65
4.2 數(shù)據(jù)源 67
4.2.1 數(shù)據(jù)源類型 68
4.3 數(shù)據(jù)庫和數(shù)據(jù)倉庫 69
4.3.1 中間層-數(shù)據(jù)集市 70
4.3.2 單層架構的數(shù)據(jù)倉庫 70
4.3.3 雙層架構的數(shù)據(jù)倉庫 71
4.3.4 三層架構的數(shù)據(jù)
倉庫 71
4.3.5 實際應用的技術 72
4.4 數(shù)據(jù)挖掘引擎 73
4.4.1 解釋器 74
4.4.2 引擎和數(shù)據(jù)倉庫之間的
接口 74
4.4.3 數(shù)據(jù)挖掘算法 74
4.5 用戶界面 75
4.5.1 清晰性原則 76
4.6 如何使用 R 語言來創(chuàng)建數(shù)據(jù)
挖掘架構 79
4.6.1 數(shù)據(jù)源 79
4.6.2 數(shù)據(jù)倉庫 80
4.6.3 數(shù)據(jù)挖掘引擎 80
4.6.4 用戶界面 81
4.7 更多參考 82
4.8 小結 82
第 5 章 如何解決數(shù)據(jù)挖掘問題-數(shù)據(jù)
清洗和驗證 83
5.1 安靜祥和的一天 83
5.2 數(shù)據(jù)清洗 85
5.2.1 Tidy data 框架 85
5.2.2 分析數(shù)據(jù)的結構 87
5.2.3 數(shù)據(jù)整理 93
5.2.4 驗證數(shù)據(jù) 99
5.2.5 數(shù)據(jù)合并 109
5.3 更多參考 111
5.4 小結 111
第 6 章 觀察數(shù)據(jù) - 探索性數(shù)據(jù)
分析 113
6.1 匯總 EDA 介紹 113
6.1.1 描述總體分布 114
6.1.2 測定變量之間的
相關性 124
6.2 圖形化 EDA 130
6.2.1 變量分布可視化 131
6.2.2 變量關系可視化 136
6.2.3 更多參考 141
6.3 小結 141
第 7 章 最初的猜想-線性回歸 142
7.1 定義數(shù)據(jù)建模策略 143
7.1.1 數(shù)據(jù)建模相關概念 146
7.2 應用線性回歸 148
7.2.1 線性回歸的直觀解釋 149
7.2.2 線性回歸的數(shù)學
原理 150
7.2.3 如何在 R 語言中使用
線性回歸 152
7.3 更多參考 161
7.4 小結 161
第 8 章 淺談模型性能評估 163
8.1 定義模型性能 163
8.1.1 模型的擬合度與模型的
可解釋性 164
8.1.2 使用模型進行預測 165
8.2 測量回歸模型的性能 167
8.2.1 均方誤差 167
8.2.2 R 平方 172
8.3 衡量分類問題模型的性能 177
8.3.1 混淆矩陣 178
8.3.2 準確度 180
8.3.3 靈敏度 182
8.3.4 特異性 182
8.3.5 如何選擇合適的性能
統(tǒng)計指標 183
8.4 區(qū)分訓練數(shù)據(jù)集與測試
數(shù)據(jù)集 184
8.5 更多參考 185
8.6 小結 185
第 9 章 不要放棄-繼續(xù)學習包括多元
變量的回歸 187
9.1 從簡單線性回歸到多元線性
回歸 188
9.1.1 符號 188
9.1.2 假設 188
9.2 降維 191
9.2.1 逐步回歸 192
9.2.2 主成分回歸 196
9.3 使用 R 語言擬合多元線性
模型 197
9.3.1 模型擬合 197
9.3.2 變量的假設驗證 200
9.3.3 殘差假設驗證 201
9.3.4 降維 202
9.4 更多參考 208
9.5 小結 208
第 10 章 關于分類模型問題的
不同展望 209
10.1 分類模型是什么?讀者為什么
需要分類模型 209
10.1.1 線性回歸應用于分類
變量的局限性 210
10.1.2 常用的分類算法和
模型 211
10.2 邏輯回歸 213
10.2.1 邏輯回歸的原理 213
10.2.2 邏輯回歸的數(shù)學
原理 215
10.2.3 如何在 R 中應用邏輯
回歸 218
10.2.4 邏輯回歸結果的
可視化與解釋 224
10.3 支持向量機(SVM) 228
10.3.1 支持向量機的
原支理 229
10.3.2 在原 R 語言中應用支持
向量機 234
10.3.3 理解支持向量機的
結果 235
10.4 更多參考 238
10.5 小結 238
第 11 章 最后沖刺-隨機森林和
集成學習 239
11.1 隨機森林 239
11.1.1 隨機森林的構建模塊-決策樹
簡介 240
11.1.2 隨機森林的原理 243
11.1.3 在 R 語言中應用隨機
森林 243
11.1.4 評估模型的結果 244
11.2 集成學習 249
11.2.1 基礎的集成學習技術 250
11.2.2 采用 R 語言對數(shù)據(jù)進行
集成學習 250
11.3 在新數(shù)據(jù)上應用估計模型 256
11.3.1 將 predict.glm()函數(shù)用于
邏輯模型的預測 257
11.3.2 將 predict.randomforest()
用于隨機森林的預測 258
11.3.3 將 predict.svm()函數(shù)應用
于支持向量機的預測 258
11.4 結構化更加良好的預測分析
方法 258
11.5 對預測數(shù)據(jù)應用集成學習中的
多數(shù)投票技術 259
11.6 更多參考 260
11.7 小結 260
第 12 章 尋找罪魁禍首-用 R 語言執(zhí)行
文本數(shù)據(jù)挖掘 262
12.1 提取 PDF 文件中的數(shù)據(jù) 262
12.1.1 獲取文檔列表 263
12.1.2 通過 pdf_text()函數(shù)將
PDF 文件讀取到 R 語言
環(huán)境 264
12.1.3 使用 for 循環(huán)迭代提取
文本 266
12.2 文本情感分析 269
12.3 開發(fā)詞云 272
12.4 N 元組模型(n-grams)
分析 274
12.5 網(wǎng)絡分析 275
12.5.1 從數(shù)據(jù)幀中獲取邊
列表 279
12.5.2 使用 ggraph 程序包可視化
網(wǎng)絡 279
12.6 更多參考 283
12.7 小結 283
第 13 章 借助 R Markdown 與股東分享
公司現(xiàn)狀 284
13.1 富有說服力的數(shù)據(jù)挖掘報告之
原則 284
13.1.1 清晰闡明目標 284
13.1.2 明確陳述假設 285
13.1.3 數(shù)據(jù)處理過程清晰
明了 285
13.1.4 數(shù)據(jù)一致性 286
13.1.5 提供數(shù)據(jù)譜系 286
13.2 編制 R MarkDown 報告 287
13.3 在 RStudio 中編制 R Markdown
報告文檔 288
13.3.1 Markdown 簡介 288
13.3.2 插入代碼塊 289
13.3.3 通過內(nèi)聯(lián) R 語言代碼,
在文本中重現(xiàn)代碼的
輸出 292
13.3.4 Shiny 簡介以及 reactivity
框架 293
13.3.5 添加交互式數(shù)據(jù)族譜
模塊 297
13.4 渲染和分享 R Markdown
報告 301
13.4.1 渲染 R Markdown
報告 301
13.4.2 分享 R Markdown
報告 301
13.5 更多參考 304
13.6 小結 304
第 14 章 結語 306
附錄 A 處理日期、相對路徑和函數(shù) 309
A.1 使用 R 語言處理日期 309
A.2 R 語言中的工作目錄和相對
路徑 309
A.3 條件聲明 310