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