機器學習與 R語言 (Machine Learning with R, 3/e)

Brett Lantz

買這商品的人也買了...

商品描述

本書共12章:
第1章介紹機器學習的基本概念和理論,並介紹用於機器學習的R軟件環境的準備;
第2章介紹如何應用R來管理數據,進行數據的探索分析和數據可視化;
第3~9章介紹典型的機器學習算法,包括k近鄰分類算法、樸素貝葉斯算法、決策樹和規則樹、回歸預測、
黑盒算法——神經網絡和支持向量機、關聯分析、k均值聚類,並給出大量的實際案例和詳細的分析步驟,
例如乳腺癌的判斷、垃圾短信的過濾、貸款違約的預測、毒蘑菇的判別、醫療費用的預測、
建築用混凝土強度的預測、光學字符的識別、超市購物籃關聯分析以及市場細分等;
第10章介紹模型性能評價的原理和方法;
第11章給出提高模型性能的幾種常用方法;
第12章討論用R進行機器學習時可能遇到的一些高級專題,如特殊形式的數據、大數據集的處理、並行計算和GPU計算等技術。

作者簡介

布雷特·蘭茨(Brett Lantz)
在應用創新的數據方法來理解人類的行為方面有十餘年經驗。
他是一位DataCamp講師,經常在世界各地的機器學習會議和研討會上進行演講。
他致力於研究數據科學在體育、自動駕駛汽車、外語學習和時尚等領域的應用,並維護dataspelunking.com這個網站,該網站致力於分享有關探尋數據中所蘊含的洞察的知識。


譯者簡介:
許金煒
2016年上海大學統計學碩士畢業,參與翻譯《機器學習與R語言》第1版和第2版、《R語言數據挖掘》及《高級R語言編程指南》第2版,曾於各類數學建模競賽中斬獲佳績。
目前主要於金融行業從事風控領域及量化方面的工作。

目錄大綱

譯者序
前 言
第1章 機器學習簡介 1
1.1 機器學習的起源 1
1.2 機器學習的使用與濫用 2
1.2.1 機器學習的成功應用 3
1.2.2 機器學習的限制 4
1.2.3 機器學習的倫理方面 5
1.3 機器如何學習 7
1.3.1 數據存儲 8
1.3.2 抽象化 8
1.3.3 一般化 10
1.3.4 評估 11
1.4 實踐中的機器學習 12
1.4.1 輸入數據的類型 13
1.4.2 機器學習算法的類型 14
1.4.3 為輸入數據匹配算法 15
1.5 使用R進行機器學習 16
1.5.1 安裝R添加包 17
1.5.2 載入和卸載R添加包 18
1.5.3 安裝RStudio 18
1.6 總結 19

第2章 管理和理解數據 20
2.1 R數據結構 20
2.1.1 向量 20
2.1.2 因子 22
2.1.3 列表 23
2.1.4 數據框 25
2.1.5 矩陣和數組 27
2.2 用R管理數據 28
2.2.1 保存、載入和移除R數據結構 29
2.2.2 從CSV文件導入數據和將數據保存為CSV文件 29
2.3 探索和理解數據 31
2.3.1 探索數據的結構 31
2.3.2 探索數值變量 32
2.3.3 探索分類變量 40
2.3.4 探索變量之間的關係 41
2.4 總結 44

第3章 懶惰學習——使用近鄰分類 46
3.1 理解近鄰分類 46
3.1.1 k近鄰算法 47
3.1.2 為什麼k-NN算法是懶惰的 52
3.2 例子—用k-NN算法診斷乳腺癌 53
3.2.1 第1步—收集數據 53
3.2.2 第2步—探索和準備數據 54
3.2.3 第3步—基於數據訓練模型 57
3.2.4 第4步—評估模型的性能 58
3.2.5 第5步—提高模型的性能 59
3.3 總結 61

第4章 概率學習——樸素貝葉斯分類 62
4.1 理解樸素貝葉斯 62
4.1.1 貝葉斯方法的基本概念 63
4.1.2 樸素貝葉斯算法 67
4.2 例子—基於貝葉斯算法的手機垃圾短信過濾 72
4.2.1 第1步—收集數據 72
4.2.2 第2步—探索和準備數據 73
4.2.3 第3步—基於數據訓練模型 84
4.2.4 第4步—評估模型的性能 85
4.2.5 第5步—提高模型的性能 86
4.3 總結 87

第5章 分而治之——應用決策樹和規則進行分類 88
5.1 理解決策樹 88
5.1.1 分而治之 89
5.1.2 C5.0決策樹算法 92
5.2 例子—使用C5.0決策樹識別高風險銀行貸款 95
5.2.1 第1步—收集數據 95
5.2.2 第2步—探索和準備數據 95
5.2.3 第3步—基於數據訓練模型 98
5.2.4 第4步—評估模型的性能 100
5.2.5 第5步—提高模型的性能 100
5.3 理解分類規則 104
5.3.1 獨立而治之 104
5.3.2 1R算法 106
5.3.3 RIPPER算法 108
5.3.4 來自決策樹的規則 109
5.3.5 什麼使決策樹和規則貪婪 110
5.4 例子—應用規則學習算法識別有毒的蘑菇 111
5.4.1 第1步—收集數據 111
5.4.2 第2步—探索和準備數據 112
5.4.3 第3步—基於數據訓練模型 112
5.4.4 第4步—評估模型的性能 114
5.4.5 第5步—提高模型的性能 115
5.5 總結 117

第6章 預測數值型數據——回歸方法 118
6.1 理解回歸 118
6.1.1 簡單線性回歸 120
6.1.2 普通最小二乘估計 122
6.1.3 相關性 123
6.1.4 多元線性回歸 124
6.2 例子—應用線性回歸預測醫療費用 127
6.2.1 第1步—收集數據 128
6.2.2 第2步—探索和準備數據 128
6.2.3 第3步—基於數據訓練模型 132
6.2.4 第4步—評估模型的性能 134
6.2.5 第5步—提高模型的性能 135
6.2.6 第6步—用回歸模型進行預測 138
6.3 理解回歸樹和模型樹 140
6.4 例子—用回歸樹和模型樹估計葡萄酒的質量 142
6.4.1 第1步—收集數據 142
6.4.2 第2步—探索和準備數據 143
6.4.3 第3步—基於數據訓練模型 144
6.4.4 第4步—評估模型的性能 147
6.4.5 第5步—提高模型的性能 149
6.5 總結 151

第7章 黑箱方法—神經網絡和支持向量機 152
7.1 理解神經網絡 152
7.1.1 從生物神經元到人工神經元 153
7.1.2 激活函數 154
7.1.3 網絡拓撲 156
7.1.4 用後向傳播訓練神經網絡 159
7.2 例子—用人工神經網絡對混凝土的強度進行建模 160
7.2.1 第1步—收集數據 161
7.2.2 第2步—探索和準備數據 161
7.2.3 第3步—基於數據訓練模型 162
7.2.4 第4步—評估模型的性能 164
7.2.5 第5步—提高模型的性能 165
7.3 理解支持向量機 169
7.3.1 用超平面分類 169
7.3.2 對非線性空間使用核函數 173
7.4 例子—用支持向量機進行光學字符識別 175
7.4.1 第1步—收集數據 175
7.4.2 第2步—探索和準備數據 176
7.4.3 第3步—基於數據訓練模型 177
7.4.4 第4步—評估模型的性能 179
7.4.5 第5步—提高模型的性能 180
7.5 總結 182

第8章 探尋模式——基於關聯規則的購物籃分析 183
8.1 理解關聯規則 183
8.1.1 用於關聯規則學習的Apriori算法 184
8.1.2 度量規則興趣度—支持度和置信度 185
8.1.3 用Apriori原則建立規則 186
8.2 例子—用關聯規則確定經常一起購買的食品雜貨 187
8.2.1 第1步—收集數據 187
8.2.2 第2步—探索和準備數據 188
8.2.3 第3步—基於數據訓練模型 193
8.2.4 第4步—評估模型的性能 195
8.2.5 第5步—提高模型的性能 197
8.3 總結 200

第9章 尋找數據的分組——k均值聚類 201
9.1 理解聚類 201
9.1.1 聚類—一種機器學習任務 202
9.1.2 k均值聚類算法 203
9.2 例子—用k均值聚類探尋青少年市場細分 209
9.2.1 第1步—收集數據 209
9.2.2 第2步—探索和準備數據 210
9.2.3 第3步—基於數據訓練模型 213
9.2.4 第4步—評估模型的性能 215
9.2.5 第5步—提高模型的性能 217
9.3 總結 219

第10章 模型性能的評估 220
10.1 度量分類方法的性能 220
10.1.1 理解分類器的預測 221
10.1.2 深入探討混淆矩陣 224
10.1.3 使用混淆矩陣度量性能 225
10.1.4 準確率之外的其他性能度量指標 226
10.1.5 使用ROC曲線可視化性能權衡 233
10.2 評估未來的性能 237
10.3 總結 242

第11章 提高模型的性能 243
11.1 調整多個模型來提高性能 243
11.2 使用元學習來提高模型的性能 251
11.2.1 理解集成學習 251
11.2.2 bagging 253
11.2.3 boosting 254
11.2.4 隨機森林 256
11.3 總結 261

第12章 其他機器學習主題 262
12.1 管理和準備真實數據 262
12.1.1 使用tidyverse添加包使數據變得“整潔” 263
12.1.2 讀取和寫入外部數據文件 265
12.1.3 查詢SQL數據庫中的數據 266
12.2 處理在線數據和服務 270
12.2.1 下載網頁的所有文本 270
12.2.2 解析網頁中的數據 271
12.3 處理特定領域的數據 277
12.3.1 分析生物信息學數據 277
12.3.2 分析和可視化網絡數據 277
12.4 提高R語言的性能 280
12.4.1 處理非常大的數據集 281
12.4.2 使用並行計算來加快學習過程 283
12.4.3 部署優化的學習算法 290
12.4.4 GPU計算 292
12.5 總結 294