本書(shū)是“達(dá)人迷”經(jīng)典系列中關(guān)于機(jī)器學(xué)習(xí)的一本。本書(shū)內(nèi)容分為6 個(gè)部分, 共計(jì) 23 章, 由淺入深地講解機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí), 本書(shū)使用的語(yǔ)言--Python和R, 必備數(shù)學(xué)知識(shí), 處理數(shù)據(jù)的常用工具, 機(jī)器學(xué)習(xí)的應(yīng)用以及常見(jiàn)的學(xué)習(xí)包、模型等6個(gè)方面, 以幫助讀者了解并掌握機(jī)器學(xué)習(xí)的相關(guān)知識(shí)、并能將其應(yīng)用于自己的工作中。
第 1 部分 關(guān)于機(jī)器如何學(xué)習(xí)的介紹 1
第 1 章 有關(guān) AI 的真實(shí)故事 3
1.1 超越炒作 4
1.2 夢(mèng)到電子羊 5
1.2.1 了解 AI 和機(jī)器學(xué)習(xí)的歷史 5
1.2.2 機(jī)器學(xué)習(xí)能為 AI 做什么 6
1.2.3 機(jī)器學(xué)習(xí)的目標(biāo) 7
1.2.4 硬件決定了機(jī)器學(xué)習(xí)的極限 7
1.3 克服 AI 幻想 8
1.3.1 AI 和機(jī)器學(xué)習(xí)的時(shí)髦用途 9
1.3.2 AI 和機(jī)器學(xué)習(xí)的真正用途 9
1.3.3 講究實(shí)用性,講究普通性 11
1.4 AI 和機(jī)器學(xué)習(xí)之間的關(guān)系 11
1.5 AI 和機(jī)器學(xué)習(xí)的規(guī)范 12
1.6 定義藝術(shù)與工程之間的界限 13
第 2 章 大數(shù)據(jù)時(shí)代的學(xué)習(xí) 14
2.1 定義大數(shù)據(jù) 15
2.2 考慮大數(shù)據(jù)源 16
2.2.1 構(gòu)建一個(gè)新的數(shù)據(jù)源 16
2.2.2 使用現(xiàn)有的數(shù)據(jù)源 18
2.2.3 尋找用于測(cè)試的數(shù)據(jù)源 18
2.3 確立統(tǒng)計(jì)學(xué)在機(jī)器學(xué)習(xí)中的角色 19
2.4 理解算法的角色 20
2.4.1 定義算法要做什么 20
2.4.2 考慮五大主流技術(shù) 20
2.5 定義訓(xùn)練的含義 22
第 3 章 對(duì)未來(lái)的設(shè)想 24
3.1 為將來(lái)創(chuàng)造有用的技術(shù) 25
3.1.1 考慮機(jī)器人領(lǐng)域中機(jī)器學(xué)習(xí)的角色 25
3.1.2 在醫(yī)療領(lǐng)域使用機(jī)器學(xué)習(xí) 26
3.1.3 為各種需求創(chuàng)建智能的系統(tǒng) 26
3.1.4 在工業(yè)界使用機(jī)器學(xué)習(xí) 27
3.1.5 理解更新的處理器和其他硬件的角色 28
3.2 通過(guò)機(jī)器學(xué)習(xí)發(fā)現(xiàn)新的工作機(jī)會(huì) 28
3.2.1 為機(jī)器工作 28
3.2.2 和機(jī)器一起工作 29
3.2.3 修復(fù)機(jī)器 30
3.2.4 創(chuàng)建新的機(jī)器學(xué)習(xí)任務(wù) 30
3.2.5 設(shè)計(jì)新的機(jī)器學(xué)習(xí)環(huán)境 30
3.3 避免未來(lái)技術(shù)中潛在的陷阱 31
第 2 部分 準(zhǔn)備你的學(xué)習(xí)工具 33
第 4 章 安裝 R 35
4.1 為機(jī)器學(xué)習(xí)選擇 R 的版本 36
4.2 在 Windows 系統(tǒng)上安裝 R 37
4.3 在 Linux 系統(tǒng)上安裝 R 43
4.4 在 Mac OS X 系統(tǒng)上安裝 R 45
4.5 下載數(shù)據(jù)集和示例代碼 46
4.5.1 了解本書(shū)使用的數(shù)據(jù)集 47
4.5.2 定義代碼庫(kù) 48
第 5 章 使用 RStudio 在 R 中編碼 50
5.1 理解基本的數(shù)據(jù)類(lèi)型 51
5.2 使用向量 52
5.3 使用列表組織數(shù)據(jù) 53
5.4 使用矩陣 54
5.4.1 創(chuàng)建基本矩陣 54
5.4.2 修改向量的排列 55
5.4.3 訪問(wèn)單個(gè)元素 56
5.4.4 對(duì)行和列進(jìn)行命名 56
5.5 使用數(shù)組處理多維 57
5.5.1 創(chuàng)建一個(gè)基本的數(shù)組 58
5.5.2 命名行和列 59
5.6 創(chuàng)建一個(gè)數(shù)據(jù)框 60
5.6.1 理解因子 60
5.6.2 創(chuàng)建一個(gè)基本的數(shù)據(jù)框 62
5.6.3 和數(shù)據(jù)框的交互 63
5.6.4 擴(kuò)展一個(gè)數(shù)據(jù)框 64
5.7 執(zhí)行基本的統(tǒng)計(jì)任務(wù) 66
5.7.1 進(jìn)行決策 66
5.7.2 使用循環(huán) 68
5.7.3 不使用循環(huán)語(yǔ)句來(lái)執(zhí)行循環(huán)的任務(wù) 69
5.7.4 使用函數(shù) 70
5.7.5 查找平均值和中位數(shù) 70
5.7.6 通過(guò)圖表來(lái)表示你的數(shù)據(jù) 71
第 6 章 安裝 Python 73
6.1 為機(jī)器學(xué)習(xí)選擇 Python 的版本 74
6.1.1 獲取 Continuum Analytics Anaconda 75
6.1.2 獲取 Enthought Canopy Express 76
6.1.3 獲取 pythonxy 76
6.1.4 獲取 WinPython 77
6.2 在 Linux 系統(tǒng)上安裝 Python 77
6.3 在 Mac OS X 上安裝 Python 78
6.4 在 Windows 系統(tǒng)上安裝Python 79
6.5 下載數(shù)據(jù)集和示例代碼 83
6.5.1 使用 Jupyter Notebook 83
6.5.2 定義代碼庫(kù) 85
6.5.3 了解本書(shū)所使用的數(shù)據(jù)集 90
第 7 章 使用 Anaconda 進(jìn)行 Python編程 92
7.1 使用數(shù)字和邏輯 93
7.1.1 執(zhí)行變量賦值 95
7.1.2 做算術(shù) 95
7.1.3 使用布爾表達(dá)式來(lái)比較數(shù)據(jù) 97
7.2 創(chuàng)建并使用字符串 99
7.3 和日期打交道 100
7.4 創(chuàng)建并使用函數(shù) 101
7.4.1 創(chuàng)建可重用的函數(shù) 101
7.4.2 調(diào)用函數(shù) 102
7.4.3 使用全局變量和局部變量 104
7.5 使用條件和循環(huán)語(yǔ)句 105
7.5.1 使用 if 語(yǔ)句進(jìn)行決策 105
7.5.2 使用嵌套的決策,在多個(gè)選項(xiàng)中進(jìn)行選擇 106
7.5.3 使用 for 執(zhí)行重復(fù)的任務(wù) 107
7.5.4 使用 while 語(yǔ)句 108
7.6 使用集合、列表和元組來(lái)存儲(chǔ)數(shù)據(jù) 109
7.6.1 創(chuàng)建集合 109
7.6.2 在集合上進(jìn)行運(yùn)算 109
7.6.3 創(chuàng)建列表 110
7.6.4 創(chuàng)建并使用元組 111
7.7 定義有用的迭代器 113
7.8 使用字典來(lái)索引數(shù)據(jù) 114
7.9 將代碼存儲(chǔ)在模塊中 114
第 8 章 探索其他的機(jī)器學(xué)習(xí)工具 116
8.1 SAS、Stata 和 SPSS 117
8.2 用 Weka 做學(xué)術(shù) 119
8.3 使用 LIBSVM 輕松訪問(wèn)復(fù)雜的算法 120
8.4 使用 Vowpal Wabbit,運(yùn)行起來(lái)像閃電那么快 120
8.5 使用 KNIME 和 RapidMiner進(jìn)行可視化 121
8.6 使用 Spark 處理海量數(shù)據(jù) 122
第 3 部分 從數(shù)學(xué)的基礎(chǔ)知識(shí)開(kāi)始 123
第 9 章 揭秘機(jī)器學(xué)習(xí)背后的數(shù)學(xué) 125
9.1 處理數(shù)據(jù) 126
9.1.1 創(chuàng)建矩陣 127
9.1.2 理解基本的運(yùn)算 129
9.1.3 進(jìn)行矩陣的乘法 130
9.1.4 了解高級(jí)的矩陣運(yùn)算 132
9.1.5 有效地使用向量 132
9.2 探索概率的世界 135
9.2.1 概率的運(yùn)算 136
9.2.2 貝葉斯理論的條件概率 137
9.3 介紹統(tǒng)計(jì)的使用 139
第 10 章 降低合適的曲線 142
10.1 將學(xué)習(xí)解釋為優(yōu)化 143
10.1.1 監(jiān)督式學(xué)習(xí) 143
10.1.2 無(wú)監(jiān)督式學(xué)習(xí) 143
10.1.3 增強(qiáng)學(xué)習(xí) 144
10.1.4 學(xué)習(xí)的過(guò)程 144
10.2 探索成本函數(shù) 147
10.3 降低誤差曲線 148
10.4 小批量和在線的更新 150
第 11 章 驗(yàn)證機(jī)器學(xué)習(xí) 154
11.1 檢查樣本之外的誤差 155
11.2 理解偏差的局限 157
11.3 記住模型的復(fù)雜性 159
11.4 讓解決方案保持均衡性 160
11.5 訓(xùn)練、驗(yàn)證和測(cè)試 163
11.6 借助于交叉驗(yàn)證 163
11.7 尋求驗(yàn)證的替代方案 165
11.8 優(yōu)化交叉驗(yàn)證的選擇 166
11.9 避免樣本偏差和泄露陷阱 168
第 12 章 從簡(jiǎn)單的學(xué)習(xí)器開(kāi)始 171
12.1 發(fā)現(xiàn)令人驚嘆的感知器 172
12.1.1 還談不上奇跡 172
12.1.2 觸碰不可分的極限 174
12.2 生成貪婪的分類(lèi)樹(shù) 175
12.2.1 通過(guò)劃分?jǐn)?shù)據(jù)來(lái)預(yù)測(cè)結(jié)果 176
12.2.2 修剪過(guò)于茂盛的樹(shù) 179
12.3 概率 180
12.3.1 理解樸素貝葉斯 180
12.3.2 使用樸素貝葉斯來(lái)預(yù)估響應(yīng) 183
第 4 部分 從聰明且大量的數(shù)據(jù)中學(xué)習(xí) 187
第 13 章 預(yù)處理數(shù)據(jù) 189
13.1 收集并清洗數(shù)據(jù) 190
13.2 修復(fù)缺失的數(shù)據(jù) 191
13.2.1 識(shí)別缺失的數(shù)據(jù) 191
13.2.2 選擇正確的替代策略 192
13.3 變換數(shù)據(jù)的分布 195
13.4 創(chuàng)建你自己的特征 197
13.4.1 理解為什么要?jiǎng)?chuàng)建特征 197
13.4.2 自動(dòng)地創(chuàng)建特征 197
13.5 壓縮數(shù)據(jù) 199
13.6 劃分出異常數(shù)據(jù) 201
第 14 章 利用相似度 205
14.1 測(cè)量向量之間的相似度 206
14.1.1 理解相似度 206
14.1.2 計(jì)算用于學(xué)習(xí)的距離 207
14.2 使用距離來(lái)確定聚類(lèi) 208
14.2.1 檢查假設(shè)和期望 209
14.2.2 檢視算法的細(xì)節(jié) 210
14.3 調(diào)優(yōu) K 均值算法 212
14.3.1 試驗(yàn) K 均值的可靠性 213
14.3.2 試驗(yàn)質(zhì)心如何收斂 215
14.4 使用 K 最近鄰的搜索進(jìn)行分類(lèi) 218
14.5 利用正確的 k 參數(shù) 218
14.5.1 理解參數(shù) k 219
14.5.2 試驗(yàn)一個(gè)靈活的算法 220
第 15 章 使用線性模型的簡(jiǎn)單方式 223
15.1 開(kāi)始合并變量 224
15.2 混合不同類(lèi)型的變量 229
15.3 切換到概率 232
15.3.1 指定二元的響應(yīng) 232
15.3.2 處理多個(gè)類(lèi) 234
15.4 猜測(cè)正確的特征 235
15.4.1 定義不能協(xié)同工作的特征的結(jié)果 235
15.4.2 使用特征選擇來(lái)解決過(guò)擬合問(wèn)題 236
15.5 每次學(xué)習(xí)一個(gè)樣例 238
15.5.1 使用梯度下降 238
15.5.2 理解隨機(jī)梯度下降的不同之處 239
第 16 章 用神經(jīng)網(wǎng)絡(luò)解決復(fù)雜性問(wèn)題 243
16.1 學(xué)習(xí)并模仿大自然 244
16.1.1 使用前饋 245
16.1.2 深入兔子洞 247
16.1.3 使用反向傳播 249
16.2 和過(guò)擬合做斗爭(zhēng) 251
16.2.1 理解問(wèn)題 252
16.2.2 打開(kāi)黑匣子 252
16.3 介紹深度學(xué)習(xí) 255
第 17 章 更進(jìn)一步,使用支持向量機(jī) 258
17.1 重溫分隔問(wèn)題:一種新的方法 259
17.2 算法的解釋 260
17.2.1 深入支持向量機(jī)的數(shù)學(xué)基礎(chǔ) 262
17.2.2 避免不可分隔的陷阱 263
17.3 使用非線性 264
17.3.1 使用例子展示核函數(shù)的技巧 265
17.3.2 發(fā)現(xiàn)不同的核函數(shù) 266
17.4 闡述超參數(shù) 268
17.5 使用支持向量機(jī)進(jìn)行分類(lèi)和預(yù)估 269
第 18 章 借助于學(xué)習(xí)器的組合 274
18.1 利用決策樹(shù) 275
18.1.1 種植一片森林 276
18.1.2 理解重要性度量 279
18.2 使用幾乎隨機(jī)的猜測(cè) 281
18.3 增強(qiáng)聰明的預(yù)測(cè)器 285
18.4 平均不同的預(yù)測(cè)器 287
第 5 部分 將學(xué)習(xí)應(yīng)用到實(shí)際問(wèn)題 289
第 19 章 圖像的分類(lèi) 291
19.1 處理一組圖像 292
19.2 提取視覺(jué)特征 296
19.3 使用 Eigenfaces 識(shí)別人臉 297
第 20 章 為觀點(diǎn)和情感打分 301
20.1 介紹自然語(yǔ)言處理 301
20.2 理解機(jī)器是如何閱讀的 302
20.2.1 處理并增強(qiáng)文本 304
20.2.2 從 Web 上抓取文本數(shù)據(jù)集 308
20.2.3 處理原始文本中的問(wèn)題 311
20.3 使用打分和分類(lèi) 312
20.3.1 執(zhí)行分類(lèi)任務(wù) 312
20.3.2 分析來(lái)自電子商務(wù)平臺(tái)的評(píng)論 315
第 21 章 推薦商品和電影 319
21.1 實(shí)現(xiàn)變革 320
21.2 下載評(píng)分?jǐn)?shù)據(jù) 321
21.2.1 了解 MovieLens數(shù)據(jù)集 321
21.2.2 瀏覽匿名的 Web 數(shù)據(jù) 323
21.2.3 面對(duì)評(píng)分?jǐn)?shù)據(jù)的局限 323
21.3 利用奇異值分解 325
21.3.1 考慮 SVD 的起源 325
21.3.2 理解 SVD 的內(nèi)在關(guān)聯(lián) 326
21.3.3 SVD 的實(shí)踐 327
第 6 部分 十條區(qū) 333
第 22 章 10 個(gè)需要掌握的機(jī)器學(xué)習(xí)包 335
22.1 Cloudera Oryx 336
22.2 CUDA-Convnet 336
22.3 ConvNetJS 336
22.4 e1071 337
22.5 gbm 337
22.6 Gensim 338
22.7 glmnet 338
22.8 randomForest 338
22.9 SciPy 339
22.10 XGBoost 339
第 23 章 提升機(jī)器學(xué)習(xí)模型的 10 種方式 340
23.1 研究學(xué)習(xí)的曲線 341
23.2 正確地使用交叉驗(yàn)證 341
23.3 選擇正確的錯(cuò)誤或分?jǐn)?shù)度量標(biāo)準(zhǔn) 342
23.4 搜尋最佳的超參數(shù) 343
23.5 測(cè)試多個(gè)模型 343
23.6 平均多個(gè)模型 344
23.7 堆疊多個(gè)模型 344
23.8 運(yùn)用特征工程 345
23.9 選擇特征和樣本 345
23.10 尋求更多的數(shù)據(jù) 346