Hefin I. Rhys
一位有著8年教授R語言、統計學和機器學習經驗的生命科學家和細胞學家。他將自己的統計學/機器學習知識貢獻給多項學術研究,並熱衷於講授統計學、機器學習和數據可視化方面的課程。
為什麼使用R語言進行機器學習?
R和Python是兩種最常用的數據科學語言,兩種語言並沒有絕對優勢,各有所長。Python是更通用的編程語言,先進的深度學習方法更容易通過使用Python來編寫實現。R語言擅長數據分析、統計建模,有簡化數據科學任務的tidyverse程序包。
為什麼要用mlr程序包?
R語言中機器學習算法的通用接口,類似於Python的scikit-learn庫。
為什麼要用tidyverse程序包?
數據處理是機器學習中最耗時和復雜的部分,tidyverse程序包可以使數據的處理、轉換和可視化變得簡單、合理且可復制,大大簡化了數據整理的過程。
前 言
為更好地進行研究,我在攻讀博士學位期間大量使用了統計建模,並選擇了生命科學學術界廣泛使用的R語言作為建模語言。R語言主要用於統計計算,因此它在構建線性模型方面的作用是無與倫比的。
我所要處理的數據問題的類型隨著項目的進展也在發生著變化。數據量逐漸增加,並且每項實驗的目標變得更加復雜和多樣。因此,有更多的變量需要處理,諸如如何可視化數據中的模式等問題變得更加困難。此後,我發現相對於僅僅了解生物學本身而言,自己對數據預測更感興趣。有時,數據中的復雜關係很難用傳統的人工建模方法表示。另外,我想知道的只是數據中存在多少不同的種類。
我發現自己越來越傾向於使用機器學習技術來幫助自己實現目標。每遇到一個新問題,我都會在腦海中搜索有關統計和機器學習的相關技能。如果不具備相關技能,我就會做一些研究調查,了解其他人如何解決類似問題,然後嘗試不同的方法,從中找出最優方案。如果我對一系列新技術產生了濃厚的興趣,我就會閱讀相關領域的專業書籍。但令我十分沮喪的是,這些書往往針對有統計學學位的專業人士。
當我逐步並痛苦地學習技能和知識時,另一件令人沮喪的事情是R語言中的機器學習技術分布於各種不同的程序包中。這些程序包是由不同的程序人員使用不同的語法和參數編寫的,這意味著每次學習一種新技術時都要面臨額外的困難。就這點而言,那種基於Python語言(我未曾學過的一門編程語言)編寫的scikit-learn程序包讓我羨慕不已,這種程序包為大量的機器學習技術提供了一個通用接口。
但是,在我發現了像caret和mlr這樣的R語言包之後,我的學習突然變得容易了很多。與scikit-learn程序包一樣,它們也為大量的機器學習技術提供了一個通用接口,這減輕了我每次想學習新技術時就需要學習另一個程序包的R函數的負擔,並使我的機器學習項目變得更簡潔。由於主要使用的是mlr程序包,我發現處理數據實際上是我工作中最耗時和最復雜的部分。在做了更多的研究之後,我在R語言中發現了tidyverse程序包,該程序包旨在使數據的處理、轉換和可視化變得簡單、合理且可復制。從那以後,我在所有的項目中都會使用來自tidyverse程序包的工具。
我撰寫《機器學習實戰:使用R、tidyverse和mlr》的主要原因在於人們對機器學習相關知識的需求十分巨大。雖然有大量資源可供剛剛嶄露頭角的數據科學家或任何希望通過訓練計算機解決問題的人們使用,但是我一直在努力尋找既適合新手操作,又適合嚴謹教學和優質實踐的資源。《機器學習實戰:使用R、tidyverse和mlr》的初衷是想通過更少的代碼實現更強大的功能。我希望通過這種方式能夠讓你的學習變得更加容易,並且我認為使用mlr和tidyverse程序包可以幫助我實現這一目的。
目 錄
第Ⅰ部分 簡介
第1章 機器學習介紹 2
1.1 機器學習的概念 3
1.2 機器學習算法的分類 7
1.3 關於機器學習道德影響的思考 12
1.4 使用R語言進行機器學習的原因 13
1.5 使用哪些數據集 13
1.6 從本書可以學到什麼 13
1.7 本章小結 14
第2章 使用tidyverse整理、操作和繪制數據 15
2.1 tidyverse和整潔數據的概念 15
2.2 加載tidyverse 17
2.3 tibble程序包及其功能介紹 17
2.4 dplyr程序包及其功能介紹 21
2.5 ggplot2程序包及其功能介紹 26
2.6 tidyr程序包及其功能介紹 29
2.7 purrr程序包及其功能介紹 32
2.8 本章小結 38
2.9 練習題答案 38
第Ⅱ部分 分類算法
第3章 基於相似性的k近鄰分類 42
3.1 k近鄰算法的概念 42
3.2 建立第一個kNN模型 45
3.3 平衡模型誤差的兩個來源:偏差-方差權衡 51
3.4 運用交叉驗證判斷是否過擬合或欠擬合 52
3.5 交叉驗證kNN模型 53
3.6 算法將要學習的內容以及它們必須知道的內容:參數和超參數 59
3.7 調節k值以改進模型 60
3.8 kNN算法的優缺點 64
3.9 本章小結 64
3.10 練習題答案 65
第4章 對數幾率回歸分類 67
4.1 什麼是對數幾率回歸 67
4.2 建立第一個對數幾率回歸模型 74
4.3 交叉驗證對數幾率回歸模型 81
4.4 理解模型:幾率比 83
4.5 使用模型進行預測 84
4.6 對數幾率回歸算法的優缺點 84
4.7 本章小結 85
4.8 練習題答案 85
第5章 基於判別分析的最大分離方法 88
5.1 什麼是判別分析 88
5.2 構建線性和二次判別模型 95
5.3 LDA和QDA算法的優缺點 100
5.4 本章小結 101
5.5 練習題答案 101
第6章 樸素貝葉斯和支持向量機分類算法 103
6.1 什麼是樸素貝葉斯算法 104
6.2 建立第一個樸素貝葉斯模型 107
6.3 樸素貝葉斯算法的優缺點 110
6.4 什麼是支持向量機(SVM)算法 110
6.5 構建第一個SVM模型 117
6.6 交叉驗證SVM模型 123
6.7 SVM算法的優缺點 124
6.8 本章小結 124
6.9 練習題答案 125
第7章 決策樹分類算法 127
7.1 什麼是遞歸分區算法 127
7.2 構建第一個決策樹模型 133
7.3 加載和研究zoo數據集 134
7.4 訓練決策樹模型 134
7.5 交叉驗證決策樹模型 139
7.6 決策樹算法的優缺點 140
7.7 本章小結 140
第8章 使用隨機森林算法和boosting技術改進決策樹 142
8.1 集成學習技術:bagging、boosting和stacking 142
8.2 建立第一個隨機森林模型 148
8.3 建立第一個XGBoost模型 150
8.4 隨機森林和XGBoost算法的優缺點 155
8.5 在算法之間進行基準測試 155
8.6 本章小結 156
第Ⅲ部分 回歸算法
第9章 線性回歸 158
9.1 什麼是線性回歸 158
9.2 建立第一個線性回歸模型 163
9.3 線性回歸的優缺點 178
9.4 本章小結 178
9.5 練習題答案 179
第10章 廣義加性模型的非線性回歸 180
10.1 使用多項式項使線性回歸非線性 180
10.2 更大的靈活性:樣條曲線和廣義加性模型 182
10.3 建立第一個GAM 184
10.4 GAM的優缺點 188
10.5 本章小結 188
10.6 練習題答案 189
第11章 利用嶺回歸、LASSO回歸和彈性網絡控制過擬合 190
11.1 正則化的概念 190
11.2 嶺回歸的概念 191
11.3 L2範數的定義及其在嶺回歸中的應用 193
11.4 L1範數的定義及其在LASSO中的應用 195
11.5 彈性網絡的定義 197
11.6 建立嶺回歸、LASSO和彈性網絡模型 198
11.7 對嶺回歸、LASSO、彈性網絡和OLS進行基準測試並對比 210
11.8 嶺回歸、LASSO和彈性網絡的優缺點 211
11.9 本章小結 212
11.10 練習題答案 212
第12章 使用kNN、隨機森林和XGBoost進行回歸 215
12.1 使用kNN算法預測連續變量 215
12.2 使用基於決策樹的算法預測連續變量 217
12.3 建立第一個kNN回歸模型 219
12.4 建立第一個隨機森林回歸模型 226
12.5 建立第一個XGBoost回歸模型 227
12.6 對kNN、隨機森林和XGBoost模型的構建過程進行基準測試 229
12.7 kNN、隨機森林和XGBoost算法的優缺點 230
12.8 本章小結 230
12.9 練習題答案 231
第Ⅳ部分 降維算法
第13章 最大化方差的主成分分析法 234
13.1 降維的目的 234
13.2 主成分分析的概念 236
13.3 構建第一個PCA模型 240
13.4 PCA的優缺點 247
13.5 本章小結 247
13.6 練習題答案 247
第14章 最大化t-SNE和UMAP的相似性 249
14.1 t-SNE的含義 249
14.2 建立第一個t-SNE模型 253
14.3 UMAP的含義 256
14.4 建立第一個UMAP模型 258
14.5 t-SNE和UMAP的優缺點 261
14.6 本章小結 261
14.7 練習題答案 262
第15章 自組織映射和局部線性嵌入 263
15.1 先決條件:節點網格和流形 263
15.2 自組織映射的概念 264
15.3 建立第一個SOM 268
15.4 局部線性嵌入的概念 277
15.5 建立第一個LLE 278
15.6 建立跳蚤數據集的LLE 282
15.7 SOM和LLE的優缺點 283
15.8 本章小結 284
15.9 練習題答案 284
第Ⅴ部分 聚類算法
第16章 使用k-均值算法尋找中心聚類 288
16.1 k-均值算法的定義 288
16.2 建立第一個k-均值算法模型 292
16.3 k-均值算法的優缺點 304
16.4 本章小結 304
16.5 練習題答案 304
第17章 層次聚類 306
17.1 什麼是層次聚類 306
17.2 建立第一個聚合層次聚類模型 311
17.3 聚類穩定嗎 318
17.4 層次聚類的優缺點 320
17.5 本章小結 320
17.6 練習題答案 320
第18章 基於密度的聚類:DBSCAN和OPTICS 323
18.1 基於密度的聚類的定義 323
18.2 建立DBSCAN模型 331
18.3 建立OPTICS模型 343
18.4 基於密度的聚類的優缺點 345
18.5 本章小結 346
18.6 練習題答案 346
第19章 基於混合建模的分布聚類 348
19.1 混合模型聚類的概念 348
19.2 建立第一個用於聚類的高斯混合模型 353
19.3 混合模型聚類的優缺點 356
19.4 本章小結 357
19.5 練習題答案 357
第20章 最終筆記和進一步閱讀 359
20.1 簡要回顧機器學習概念 359
20.2 學完本書後,還可以學習哪些內容 367
20.3 結語 369
附錄 復習統計學概念 370
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。