機器學習入門與實戰 Machine Learning for Dummies

[美]約翰·保羅·穆勒(John Paul Mueller) [意]盧卡·馬薩羅(Luca Massaron)

  • 機器學習入門與實戰-preview-1
  • 機器學習入門與實戰-preview-2
機器學習入門與實戰-preview-1

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

商品描述

機器學習是電腦科學和人工智能的重要分支之一,它被廣泛應用在多種領域,如機器人、無人駕駛汽車等。

 

本書是“達人迷”經典系列中關於機器學習的一本。本書內容分為6個部分,共計23 章,由淺入深地講解機器學習的基本知識、本書使用的語言——Python 和 R、必備的數學知識、處理數據的常用工具、機器學習的應用以及常見的學習包和模型 6 個方面,以幫助讀者瞭解並掌握機器學習的相關知識,並能將其應用於自己的工作中。

 

本書適合Python程序員、R程序員、數據分析人員、機器學習領域的從業人員以及對算法感興趣的讀者閱讀。

作者簡介

约翰·保罗·穆勒是一位多产的自由撰稿人和技术编辑。他的作品涵盖了从网络、家庭安全到数据库管理和日常编程的方方面面。

 

卢卡·马萨罗是一名数据科学家,他擅长大数据处理,可通过数据挖掘和机器学习技术将处理后的数据转化为智能数据。

目錄大綱

第 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 和機器學習的規範 12

1.6 定義藝術與工程之間的界限 13

第 2 章 大數據時代的學習 14

2.1 定義大數據 15

2.2 考慮大數據源 16

2.2.1 構建一個新的數據源 16

2.2.2 使用現有的數據源 18

2.2.3 尋找用於測試的數據源 18

2.3 確立統計學在機器學習中的角色 19

2.4 理解算法的角色 20

2.4.1 定義算法要做什麽 20

2.4.2 考慮五大主流技術 20

2.5 定義訓練的含義 22

第 3 章 對未來的設想 24

3.1 為將來創造有用的技術 25

3.1.1 考慮機器人領域中機器學習的角色 25

3.1.2 在醫療領域使用機器學習 26

3.1.3 為各種需求創建智能的系統 26

3.1.4 在工業界使用機器學習 27

3.1.5 理解更新的處理器和其他硬件的角色 28

3.2 通過機器學習發現新的工作機會 28

3.2.1 為機器工作 28

3.2.2 和機器一起工作 29

3.2.3 修復機器 30

3.2.4 創建新的機器學習任務 30

3.2.5 設計新的機器學習環境 30

3.3 避免未來技術中潛在的陷阱 31

第 2 部分 準備你的學習工具 33

第 4 章 安裝 R 35

4.1 為機器學習選擇 R 的版本 36

4.2 在 Windows 系統上安裝 R 37

4.3 在 Linux 系統上安裝 R 43

4.4 在 Mac OS X 系統上安裝 R 45

4.5 下載數據集和示例代碼 46

4.5.1 瞭解本書使用的數據集 47

4.5.2 定義代碼庫 48

第 5 章 使用 RStudio 在 R 中編碼 50

5.1 理解基本的數據類型 51

5.2 使用向量 52

5.3 使用列表組織數據 53

5.4 使用矩陣 54

5.4.1 創建基本矩陣 54

5.4.2 修改向量的排列 55

5.4.3 訪問單個元素 56

5.4.4 對行和列進行命名 56

5.5 使用數組處理多維 57

5.5.1 創建一個基本的數組 58

5.5.2 命名行和列 59

5.6 創建一個數據框 60

5.6.1 理解因子 60

5.6.2 創建一個基本的數據框 62

5.6.3 和數據框的交互 63

5.6.4 擴展一個數據框 64

5.7 執行基本的統計任務 66

5.7.1 進行決策 66

5.7.2 使用循環 68

5.7.3 不使用循環語句來執行循環的任務 69

5.7.4 使用函數 70

5.7.5 查找平均值和中位數 70

5.7.6 通過圖表來表示你的數據 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 系統上安裝 Python 77

6.3 在 Mac OS X 上安裝 Python 78

6.4 在 Windows 系統上安裝Python 79

6.5 下載數據集和示例代碼 83

6.5.1 使用 Jupyter Notebook 83

6.5.2 定義代碼庫 85

6.5.3 瞭解本書所使用的數據集 90

第 7 章 使用 Anaconda 進行 Python編程 92

7.1 使用數字和邏輯 93

7.1.1 執行變量賦值 95

7.1.2 做算術 95

7.1.3 使用布爾表達式來比較數據 97

7.2 創建並使用字符串 99

7.3 和日期打交道 100

7.4 創建並使用函數 101

7.4.1 創建可重用的函數 101

7.4.2 調用函數 102

7.4.3 使用全局變量和局部變量 104

7.5 使用條件和循環語句 105

7.5.1 使用 if 語句進行決策 105

7.5.2 使用嵌套的決策,在多個選項中進行選擇 106

7.5.3 使用 for 執行重復的任務 107

7.5.4 使用 while 語句 108

7.6 使用集合、列表和元組來存儲數據 109

7.6.1 創建集合 109

7.6.2 在集合上進行運算 109

7.6.3 創建列表 110

7.6.4 創建並使用元組 111

7.7 定義有用的迭代器 113

7.8 使用字典來索引數據 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 處理海量數據 122

第 3 部分 從數學的基礎知識開始 123

第 9 章 揭秘機器學習背後的數學 125

9.1 處理數據 126

9.1.1 創建矩陣 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 介紹統計的使用 139

第 10 章 降低合適的曲線 142

10.1 將學習解釋為優化 143

10.1.1 監督式學習 143

10.1.2 無監督式學習 143

10.1.3 增強學習 144

10.1.4 學習的過程 144

10.2 探索成本函數 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 優化交叉驗證的選擇 166

11.9 避免樣本偏差和泄露陷阱 168

第 12 章 從簡單的學習器開始 171

12.1 發現令人驚嘆的感知器 172

12.1.1 還談不上奇跡 172

12.1.2 觸碰不可分的極限 174

12.2 生成貪婪的分類樹 175

12.2.1 通過劃分數據來預測結果 176

12.2.2 修剪過於茂盛的樹 179

12.3 概率 180

12.3.1 理解樸素貝葉斯 180

12.3.2 使用樸素貝葉斯來預估響應 183

第 4 部分 從聰明且大量的數據中學習 187

第 13 章 預處理數據 189

13.1 收集並清洗數據 190

13.2 修復缺失的數據 191

13.2.1 識別缺失的數據 191

13.2.2 選擇正確的替代策略 192

13.3 變換數據的分佈 195

13.4 創建你自己的特徵 197

13.4.1 理解為什麽要創建特徵 197

13.4.2 自動地創建特徵 197

13.5 壓縮數據 199

13.6 劃分出異常數據 201

第 14 章 利用相似度 205

14.1 測量向量之間的相似度 206

14.1.1 理解相似度 206

14.1.2 計算用於學習的距離 207

14.2 使用距離來確定聚類 208

14.2.1 檢查假設和期望 209

14.2.2 檢視算法的細節 210

14.3 調優 K 均值算法 212

14.3.1 試驗 K 均值的可靠性 213

14.3.2 試驗質心如何收斂 215

14.4 使用 K 最近鄰的搜索進行分類 218

14.5 利用正確的 k 參數 218

14.5.1 理解參數 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 定義不能協同工作的特徵的結果 235

15.4.2 使用特徵選擇來解決過擬合問題 236

15.5 每次學習一個樣例 238

15.5.1 使用梯度下降 238

15.5.2 理解隨機梯度下降的不同之處 239

第 16 章 用神經網絡解決復雜性問題 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 深入支持向量機的數學基礎 262

17.2.2 避免不可分隔的陷阱 263

17.3 使用非線性 264

17.3.1 使用例子展示核函數的技巧 265

17.3.2 發現不同的核函數 266

17.4 闡述超參數 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 上抓取文本數據集 308

20.2.3 處理原始文本中的問題 311

20.3 使用打分和分類 312

20.3.1 執行分類任務 312

20.3.2 分析來自電子商務平臺的評論 315

第 21 章 推薦商品和電影 319

21.1 實現變革 320

21.2 下載評分數據 321

21.2.1 瞭解 MovieLens數據集 321

21.2.2 瀏覽匿名的 Web 數據 323

21.2.3 面對評分數據的局限 323

21.3 利用奇異值分解 325

21.3.1 考慮 SVD 的起源 325

21.3.2 理解 SVD 的內在關聯 326

21.3.3 SVD 的實踐 327

第 6 部分 十條區 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 選擇正確的錯誤或分數度量標準 342

23.4 搜尋最佳的超參數 343

23.5 測試多個模型 343

23.6 平均多個模型 344

23.7 堆疊多個模型 344

23.8 運用特徵工程 345

23.9 選擇特徵和樣本 345

23.10 尋求更多的數據 346