機器學習是近年來非常熱門的學科,R語言經(jīng)過一段時間的發(fā)展也逐漸成為主流的編程語言之一。本書結(jié)合機器學習和R語言,面向機器學習實踐,不僅介紹了機器學習和R語言的基礎(chǔ)知識,而且介紹了如何借助不同的算法來進行模型分析,以及這些算法在R語言中的實現(xiàn)方式。通過閱讀本書,讀者可以快速了解機器學習和R語言的必備知識,掌握機器學習的實現(xiàn)流程。
本書適合程序員、數(shù)據(jù)分析人員、對算法感興趣的讀者、機器學習領(lǐng)域的從業(yè)人員及科研人員閱讀。
1.本書系統(tǒng)性地剖析了機器學習的內(nèi)涵,幫助讀者掌握機器學習的核心要義。書中案例的可操作性、可模仿性極好,書中的代碼示例易學易上手。
2.本書基于R語言講解,書中介紹了一系列tidyverse的包,通過流行的R包幫助讀者高效率實現(xiàn)機器學習,掌握典型的機器學習算法。
黃天元,復旦大學博士,中國科學院博士后,現(xiàn)任浙江財經(jīng)大學講師。熱愛數(shù)據(jù)科學與開源工具,致力于利用數(shù)據(jù)科學迅速積累行業(yè)經(jīng)驗和探索科學
發(fā)現(xiàn)。在 CRAN 上維護4個R 語言包(累計下載量破10萬),著有《R語言數(shù)據(jù)高效處理指南》《文本數(shù)據(jù)挖掘:基于R語言》等圖書,并開設(shè)知乎專欄《R 語言數(shù)據(jù)挖掘》。
第 1章 機器學習概論 1
1.1 機器學習的概念 1
1.2 機器學習的意義 2
1.3 機器學習的種類 3
1.4 機器學習基本流程 3
第 2章 R語言綜合基礎(chǔ) 5
2.1 簡易環(huán)境配置 5
2.2 編程保留符號 9
2.3 基本數(shù)據(jù)類型 9
2.3.1 數(shù)值型 10
2.3.2 邏輯型 10
2.3.3 字符型 11
2.3.4 因子型 11
2.3.5 類型判斷與轉(zhuǎn)換 12
2.4 常用數(shù)據(jù)結(jié)構(gòu) 12
2.4.1 向量 12
2.4.2 矩陣 13
2.4.3 列表 14
2.4.4 數(shù)據(jù)框 14
2.5 程序流程控制 15
2.5.1 選擇結(jié)構(gòu) 15
2.5.2 循環(huán)結(jié)構(gòu) 16
2.6 函數(shù)使用技巧 18
第3章 高效數(shù)據(jù)操作 19
3.1 R數(shù)據(jù)操作包簡介 19
3.2 數(shù)據(jù)讀寫 19
3.3 管道操作符 20
3.4 基本操作 21
3.4.1 篩選列 22
3.4.2 篩選行 28
3.4.3 更新 34
3.4.4 排序 36
3.4.5 匯總 40
3.4.6 分組計算 41
3.4.7 列的重命名 44
3.5 多表連接 45
3.6 長寬轉(zhuǎn)換 50
3.7 集合運算 53
3.8 缺失值處理 55
3.9 列表列的運用 56
第4章 tidyverse快速入門 59
4.1 數(shù)據(jù)讀。╮eadr) 59
4.2 數(shù)據(jù)整理 61
4.2.1 批處理(purrr) 61
4.2.2 因子操作(forcats) 64
4.2.3 時間操作(lubridate) 67
4.2.4 字符串操作(stringr) 68
4.2.5 數(shù)據(jù)框清洗(tibble/dplyr/tidyr) 71
4.3 數(shù)據(jù)可視化(ggplot2) 79
第5章 探索性數(shù)據(jù)分析 82
5.1 基本概念介紹 82
5.1.1 平均值 82
5.1.2 標準差 83
5.1.3 極值 83
5.1.4 中位數(shù) 84
5.1.5 相關(guān)系數(shù) 84
5.2 探索工具實踐 86
5.2.1 vtree 86
5.2.2 skimr 88
5.2.3 naniar 90
第6章 特征工程 93
6.1 特征修飾 93
6.1.1 歸一化 93
6.1.2 數(shù)據(jù)分箱 94
6.1.3 缺失值填補 101
6.2 特征構(gòu)造 107
6.2.1 構(gòu)造交互項 107
6.2.2 基于降維技術(shù)的特征構(gòu)造 108
6.2.3 One-Hot編碼 110
6.3 特征篩選 111
6.3.1 過濾法 111
6.3.2 封裝法 113
6.3.3 嵌入法 114
第7章 重采樣方法 116
7.1 針對模型評估的重采樣 116
7.1.1 交叉驗證 116
7.1.2 自舉法 117
7.2 針對類失衡的重采樣 117
第8章 模型表現(xiàn)的衡量 119
8.1 回歸模型的表現(xiàn)衡量 119
8.2 分類模型的表現(xiàn)衡量 120
第9章 模型選擇 122
9.1 機器學習模型概覽 122
9.1.1 線性回歸 122
9.1.2 K近鄰算法(KNN) 123
9.1.3 樸素貝葉斯方法 123
9.1.4 判別分析 124
9.1.5 支持向量機 124
9.1.6 人工神經(jīng)網(wǎng)絡 125
9.1.7 決策樹 125
9.1.8 隨機森林 126
9.1.9 梯度下降法 127
9.2 mlr3工作流簡介 127
9.2.1 環(huán)境配置 127
9.2.2 任務定義 128
9.2.3 學習器選擇 130
9.2.4 訓練與預測 131
9.3 基于mlr3的模型篩選 134
第 10章 參數(shù)調(diào)節(jié) 136
10.1 指定終止搜索條件 136
10.2 設(shè)置指定參數(shù)組合 138
10.3 范圍內(nèi)網(wǎng)格搜索 139
10.4 范圍內(nèi)隨機搜索 140
第 11章 模型分析 142
11.1 變量重要性評估 142
11.2 變量影響作用分析 146
11.3 基于個案的可加性歸因方法 149
第 12章 集成學習 152
12.1 集成學習的三種策略 152
12.1.1 裝袋法簡介 152
12.1.2 提升法簡介 152
12.1.3 堆疊法簡介 153
12.2 基于caret與caretEnsemble框架的集成學習實現(xiàn) 153
12.2.1 環(huán)境部署 153
12.2.2 數(shù)據(jù)準備 153
12.2.3 裝袋法 154
12.2.4 提升法 155
12.2.5 堆疊 156
第 13章 實踐案例一:基于caret包對泰坦尼克號乘客存活率進行二分類預測 161
13.1 工具簡介 161
13.2 問題背景 162
13.3 數(shù)據(jù)審視 162
13.4 特征工程 163
13.5 數(shù)據(jù)劃分 164
13.6 模型訓練 165
13.7 模型的預測與評估 165
13.8 超參數(shù)調(diào)節(jié) 166
第 14章 實踐案例二:基于mlr框架對波士頓房價進行回歸預測 169
14.1 工具簡介 169
14.2 問題背景 169
14.3 數(shù)據(jù)審視與預處理 170
14.4 任務定義 174
14.5 建模與調(diào)參 174
14.6 模型表現(xiàn)比較 181
14.7 進一步的參數(shù)調(diào)節(jié) 183
14.8 模型解釋 184
第 15章 實踐案例三:基于mlr3框架對皮馬印第安人糖尿病數(shù)據(jù)集進行特征篩選 187
15.1 工具簡介 187
15.2 問題背景 187
15.3 去除冗余特征 188
15.4 特征重要性排序 190
15.5 利用封裝法對特征進行篩選 191
第 16章 實踐案例四:基于tidymodels框架對鳶尾花進行多分類預測 193
16.1 工具簡介 193
16.2 問題背景 193
16.3 數(shù)據(jù)集劃分 194
16.4 數(shù)據(jù)預處理 195
16.5 指定重采樣方法 196
16.6 模型定義與調(diào)參 197
16.7 觀察模型在測試集的表現(xiàn) 199