本書共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版,曾於各類數學建模競賽中斬獲佳績。目前主要於金融行業從事風控領域及量化方面的工作。
機器學習的核心是將資料轉換為可操作的知識。R提供了一組強大的機器學習方法,可以幫助你快速輕鬆地發現資料背後隱藏的信息。
本書通過清晰和實用的案例來探索機器學習在現實世界中的應用。無論你是經驗豐富的R使用者還是R初學者,都會從本書中學到如何發現關鍵信息、做出新的預測並進行可視化。
本書的第3版包含更新和更好的庫、有關機器學習中的道德和偏差問題的建議,以及深度學習的簡介。
通過閱讀本書,你將學到:
• 通過示例發現機器學習的起源以及計算機的學習方式。
• 使用R語言為機器學習準備資料。
• 使用近鄰和貝葉斯方法對重要結果進行分類。
• 使用決策樹、關聯規則和支援向量機預測未來事件。
• 使用回歸方法預測數值型資料和估計金融資料。
• 使用人工神經網絡為複雜過程建模——深度學習的基礎。
• 避免機器學習模型中的偏差。
• 評估模型並改善其性能。
• 將R連接到SQL資料庫和新興的大資料技術,例如Spark、H2O和TensorFlow。
機器學習的核心是將信息轉化為具有可行性知識的算法。這一事實使得機器學習非常適用於當今的大資料時代。如果沒有機器學習,要跟上海量的信息資料流程幾乎是不可能的。
鑒於R的地位不斷提高(R是一個跨平臺、零成本的統計程序設計環境),現在是開始使用機器學習的最好時機。R提供了一套功能強大且易於學習的工具,這些工具可以説明我們發現資料背後隱藏的信息。
通過把實踐案例研究與基本理論(你需要理解這些理論在後臺是如何運行的)相結合,本書提供了在工作中使用機器學習所需要的全部知識。
本書讀者物件
本書適用於任何希望使用資料來採取行動的人。或許你已經對機器學習有些瞭解但從來沒有使用過R,或許你已經對R有些瞭解,但機器學習對你來說是全新的。無論是哪種情況,本書都將讓你快速上手。稍微熟悉一些基本的數學和程序設計概念將會有説明,但並不需要先前有經驗,你只需要有好奇心就行。
本書涵蓋的內容
第1章介紹用來定義和區分機器學習算法的術語和概念,並給出將學習任務與適當算法相匹配的方法。
第2章提供一個在R中自己實際動手操作數據的機會,並討論基本的資料結構以及用於載入、探索和理解資料的程式。
第3章教你如何將一個簡單且功能強大的機器學習算法應用於你的第一個學習任務:識別癌症的惡性樣本。
第4章揭示用於先進的垃圾郵件過濾系統的基本概率知識。在建立你自己的垃圾郵件篩檢程式的過程中,你將學習文本挖掘的基本知識。
第5章探索兩種學習算法,它們的預測結果不僅精確而且容易解釋。我們將把這兩種算法應用於對透明度要求很高的任務中。
第6章介紹用於數值預測的機器學習算法。由於這些技術在很大程度上來源於統計領域,所以你還將通過學習必要的基本指標來理解數值之間的關係。
第7章包括兩個極其複雜但功能強大的機器學習算法。儘管數學可能會讓人望而生畏,但是我們將以簡單的術語結合實際例子來說明它們內部的運作原理。
第8章揭示許多零售商使用的推薦系統的算法。如果你想知道零售商是如何比你自己更瞭解你的購物習慣的,本章將揭示他們的秘密。
第9章介紹k均值聚類。該算法用來查找相關個體的聚類。我們將使用該算法來確定一個網絡社區內的分佈。
第10章提供一些信息來度量機器學習項目是否成功,並得到學習器針對未來資料的性能的可靠估計。
第11章揭示在機器學習競賽中排名最靠前的團隊所採用的方法。如果你具有競爭意識,或者僅僅想獲取資料中盡可能多的信息,那麼你需要學習這些技術。
第12章探討機器學習的前沿主題。從使用大資料到使R的運行速度更快,涉及的這些主題將説明你拓展使用R進行資料採擷的界限。
學習本書的知識準備
本書中的例子是基於Microsoft Windows和Mac OS X系統的R 3.5.2版本進行編寫與測試的,當然,對於任意最新的R版本,這些例子都能運行。
下載示例代碼檔及彩色圖像
本書的示例代碼檔及使用的截圖或圖表的彩色圖像,可以從Packtpub通過個人帳號下載,也可以訪問華章圖書官網,通過註冊並登錄個人帳號下載。
本書的代碼包也放在GitHub上。
本書排版約定
在本書中,你將發現一些用於區分不同類型信息的文本樣式。下面是這些樣式的一些例子,以及它們的含義。
書中的代碼、函數名、檔案名、檔副檔名、用戶輸入和R添加包名字,如下所示: “class包中的knn()函數提供了k-NN算法的標準經典實現”
R用戶的輸入和輸出如下所示:
新的術語和重要概念以黑體顯示。你在螢幕上看到的單詞,例如,在功能表或對話方塊中看到的單詞,像這樣顯示在書中:“CRAN頁面左邊的任務視圖連結提供了添加包的長列表。”
警告或者重要注釋。
提示和技巧。
致謝
如果沒有家人和朋友的支持,編寫本書是根本不可能的。特別是,非常感謝我的妻子Jessica在過去一年中對我的耐心與鼓勵。我的兒子Will和Cal分別出生於本書第1版和第2版的寫作期間,在我撰寫本版時他們分散了我較多的精力。我把本書獻給我的孩子們,希望有一天他們能從中受到啟發,應對重大的挑戰,並跟隨他們的好奇心,無論他們的好奇心會通向哪裡。
我還要感謝支持本書的很多人。本書的很多想法來源於我與密西根大學、聖母大學以及中佛羅裡達大學的教育工作者、同事以及合作者的交流。此外,如果沒有各位研究人員以公開出版物、課程和原始程式碼的形式分享他們的專業知識,本書可能根本就不會存在。最後,我要感謝R和RStudio團隊以及所有那些貢獻R添加包的人員的努力,是他們最終為大家普及了機器學習。真心希望我的這本書能對機器學習領域做出一點貢獻。
關於作者
佈雷特·蘭茨(Brett Lantz,@DataSpelunking) 在應用創新的資料方法來理解人類的行為方面有10餘年經驗。他最初是一名社會學家,在研究一個包含青少年社交網絡資料的大型資料庫時,他就開始沉醉於機器學習。Brett是一位
譯者序
前 言
第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
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。