您的位置:首頁>正文

機器學習演算法原理與程式設計,看看這本秘笈

 《機器學習演算法原理與程式設計實踐》是機器學習原理和演算法編碼實現的基礎性讀物, 內容分為兩大主線:單個演算法的原理講解和機器學習理論的發展變遷。 演算法除包含傳統的分類、聚類、預測等常用演算法之外, 還新增了深度學習、貝葉斯網、隱瑪律科夫模型等內容。 對於每個演算法, 均包括提出問題、解決策略、數學推導、編碼實現、結果評估幾部分。 數學推導力圖做到由淺入深, 深入淺出。 結構上數學原理與程式碼——對照, 有助於降低學習門檻, 加深公式的理解, 起到推廣和擴大機器學習的作用。

第1章 機器學習的基礎 1

1.1 程式設計語言與開發環境 2

1.1.1 搭建Python開發環境 2

1.1.2 安裝Python演算法庫 4

1.1.3 IDE配置及其安裝測試 5

1.2 對象、矩陣與向量化程式設計 8

1.2.1 物件與維度 8

1.2.2 初識矩陣 10

1.2.3 向量化程式設計與GPU運算 13

1.2.4 理解數學公式與NumPy矩陣運算 14

1.2.5 Linalg線性代數庫 18

1.3 機器學習的數學基礎 20

1.3.1 相似性的度量 21

1.3.2 各類距離的意義與Python實現 22

1.3.3 理解隨機性 29

1.3.4 回顧概率論 30

1.3.5 多元統計基礎 32

1.3.6 特徵間的相關性 33

1.3.7 再談矩陣――空間的變換 35

1.3.8 資料歸—化 40

1.4 資料處理與可視化 42

1.4.1 資料的導入和記憶體管理 42

1.4.2 表與線性結構的視覺化 45

1.4.3 樹與分類結構的視覺化 46

1.4.4 圖與網路結構的視覺化 47

1.5 Linux作業系統下部署Python機器學習開發環境 48

1.5.1 Linux發行版本的選擇 48

1.5.2 CentOS部署多版本Python實例 49

1.5.3 安裝NumPy、SciPy、Matplotlib開發包 52

1.5.4 安裝Scikit-Learn開發包 54

1.6 結語 55

第2章 中文文本分類 56

2.1 文本挖掘與文本分類的概念 56

2.2 文本分類專案 58

2.2.1 文本預處理 58

2.2.2 中文分詞介紹 61

2.2.3 Scikit-Learn庫簡介 66

2.2.4 向量空間模型 70

2.2.5 權重策略:TF-IDF方法 71

2.2.6 使用樸素貝葉斯分類別模組 74

2.2.7 分類結果評估 76

2.3 分類演算法:樸素貝葉斯 78

2.3.1 貝葉斯公式推導 78

2.3.2 樸素貝葉斯演算法實現 79

2.3.3 演算法的改進 82

2.3.4 評估分類結果 82

2.4 分類演算法:kNN 83

2.4.1 kNN演算法原理 83

2.4.2 kNN演算法的Python實現 86

2.4.3 評估分類結果 88

2.5 結語 88

第3章 決策樹的發展 89

3.1 決策樹的基本思想 89

3.1.1 從—個實例開始 90

3.1.2 決策樹的演算法框架 95

3.1.3 資訊熵測度 96

3.2 ID3決策樹 98

3.2.1 ID3演算法 98

3.2.2 ID3的實現 101

3.2.3 決策樹主方法 101

3.2.4 訓練決策樹 103

3.2.5 持久化決策樹 104

3.2.6 決策樹分類 105

3.2.7 演算法評估 106

3.3 C4.5演算法 106

3.3.1 資訊增益率 106

3.3.2 C4.5的實現 108

3.3.3 訓練決策樹 108

3.3.4 分類資料 109

3.4 Scikit-Learn與回歸樹 110

3.4.1 回歸演算法原理 110

3.4.2 zui小剩餘方差法 111

3.4.3 模型樹 113

3.4.4 剪枝策略 113

3.4.5 Scikit-Learn實現 115

3.5 結語 117

第4章 推薦系統原理 118

4.1 推薦系統概述 119

4.1.1 從亞馬sun網站認識推薦系統 119

4.1.2 推薦系統的架構 122

4.1.3 開源推薦系統 125

4.2 協同過濾及其演算法 126

4.2.1 協同過濾 126

4.2.2 資料預處理 127

4.2.3 使用Scikit-Learn的KMeans聚類 127

4.2.4 User CF原理 129

4.2.5 Item CF原理 131

4.2.6 SVD原理與計算 132

4.3 KMeans演算法詳解 135

4.3.1 KMeans演算法流程 135

4.3.2 輔助函數 136

4.3.3 聚類主函數 137

4.3.4 評估分類結果 139

4.4 聚類的改進:二分KMeans演算法 141

4.4.1 二分聚類主函數 141

4.4.2 評估分類結果 142

4.5 SVD演算法詳解 143

4.5.1 SVD演算法回顧 143

4.5.2 常用距離函數 146

4.5.3 SVD資料集 146

4.5.4 SVD演算法主函數 147

4.5.5 評估結果 147

4.6 結語 148

第5章 梯度尋優 149

5.1 zui優化與計算複雜性 149

5.1.1 zui優化理論 149

5.1.2 zui優化的數學描述 150

5.1.3 凸集與分離定理 151

5.1.4 凸函數及其性質 153

5.1.5 局部zui優與全域zui優 155

5.1.6 計算複雜性與NP問題 156

5.1.7 逐次逼近法 159

5.2 Logistic梯度下降法 163

5.2.1 梯度下降法 164

5.2.2 線性分類器 166

5.2.3 Logistic函數――世界不是非黑即白 169

5.2.4 演算法流程 171

5.2.5 對測試集進行分類 175

5.3 演算法分析 175

5.3.1 超平面的變化趨勢 176

5.3.2 超平面的收斂評估 177

5.3.3 權重向量的收斂評估 179

5.3.4 演算法總體評價 180

5.4 隨機梯度下降法:演算法改進與評估 180

5.4.1 主函數 181

5.4.2 程式輸出 182

5.4.3 步長變化率 183

5.4.4 權重收斂評估 184

5.4.5 權重分量的變化趨勢 185

5.4.6 演算法總體評價 187

5.5 結語 187

第6章 神經網路初步 189

6.1 神經網路簡史 189

6.1.1 起源與早期發展 189

6.1.2 中期發展 190

6.1.3 當前的發展與反思 192

6.2 BP神經網路理論 192

6.2.1 線性不可分問題 192

6.2.2 BP網路構成 193

6.2.3 BP網路的訓練過程 196

6.3 BP網路的實現和評估 199

6.3.1 BP網路類與主要方法 199

6.3.2 設計BP網路 199

6.3.3 輔助函數 202

6.3.4 主函數 203

6.3.5 分類器 204

6.3.6 執行分類並輸出結果 205

6.3.7 BP網路評估 207

6.4 自組織特徵映射神經網路 208

6.4.1 SOM網路框架 208

6.4.2 SOM類 211

6.4.3 功能函數 212

6.4.4 SOM網路的實現 212

6.4.5 聚類結果 213

6.5 Boltzmann機演算法 215

6.5.1 問題的提出 215

6.5.2 模擬退火原理 216

6.5.3 Boltzmann分佈與退火過程 217

6.5.4 Boltzmann機類與功能函數 219

6.5.5 zui短路徑的實現 222

6.5.6 執行演算法 223

6.5.7 評估結果 224

6.6 結語 225

第7章 預測的技術與哲學 226

7.1 線性系統的預測 226

7.1.1 回歸與現代預測學 226

7.1.2 zui小二乘法 227

7.1.3 代碼實現 229

7.1.4 正規方程組法 231

7.1.5 正規方程組的代碼實現 232

7.1.6 演算法評估 232

7.2 徑向基網路 233

7.2.1 RBF網路 233

7.2.2 輔助函數 236

7.2.3 使用RBF預測 236

7.2.4 評估預測結果 238

7.3 嶺回歸 238

7.3.1 驗證多重共線性 239

7.3.2 嶺回歸理論 240

7.3.3 嶺際分析 240

7.3.4 k值的判定 242

7.3.5 輔助函數 243

7.3.6 嶺回歸的實現與k值計算 243

7.3.7 演算法評估 244

7.4 預測的哲學 245

7.4.1 從《周易》談起 246

7.4.2 兩儀生四象 249

7.4.3 週期三與混沌 251

7.4.4 Logistic中的吸引子 254

7.4.5 三生萬物 258

7.4.6 八卦圖及其推演 261

7.5 結語 263

第8章 wan能分類器――支援向量機 265

8.1 支持向量機的理論基礎 266

8.1.1 經驗風險zui優 266

8.1.2 關鍵定理與VC維 267

8.1.3 結構風險zui優 270

8.2 SVM的數學推導 272

8.2.1 zui大間隔超平面 272

8.2.2 拉格朗日乘子法 275

8.2.3 KKT條件與對偶變換 276

8.2.4 分類器函數 277

8.2.5 映射到高維空間 278

8.2.6 核函數法 280

8.2.7 離群點的鬆弛變數 281

8.3 SMO演算法 284

8.3.1 SMO求解SVM 284

8.3.2 構造SMO類 288

8.3.3 主函數 290

8.3.4 訓練資料 291

8.3.5 分類並評估演算法 293

8.4 SVM中文文本分類 293

8.4.1 回顧中文文本分類 294

8.4.2 Scikit-Learn SVM分類 294

8.4.3 評估結果 295

8.5 結語 296

第9章 人臉識別中的機器學習 297

9.1 模式識別概述 297

9.1.1 認知與模式 297

9.1.2 機器視覺與OpenCV 300

9.1.3 OpenCV的檔與基本操作 301

9.2 人臉檢測 305

9.2.1 人臉識別的歷史與架構 305

9.2.2 人臉識別系統 307

9.2.3 人臉檢測原理與Haar級聯檢測 308

9.2.4 人臉檢測特徵檔 311

9.2.5 Haar cascade的實現 314

9.2.6 LBP cascade的實現 315

9.3 AdaBoost演算法概述 316

9.3.1 演算法原理與步驟 316

9.3.2 輔助函數 317

9.3.3 AdaBoost分類器 318

9.3.4 單層決策樹分類子演算法 319

9.3.5 訓練資料集 321

9.3.6 執行分類 322

9.4 人臉識別 323

9.4.1 人臉資料庫 324

9.4.2 PCA原理 325

9.4.3 特徵臉識別類 327

9.4.4 生成特徵臉 328

9.4.5 執行人臉識別 330

9.5 結語 330

第10章 認知計算與深度學習 332

10.1 認知計算 332

10.1.1 認知層次論 333

10.1.2 從具體到抽象 336

10.1.3 Theano庫與基本操作 338

10.2 多層感知器 343

10.2.1 MNIST資料集 343

10.2.2 Softmax回歸類 345

10.2.3 正則化方法 347

10.2.4 執行SoftMax學習 350

10.2.5 多層感知器 353

10.2.6 多層感知器的實現 355

10.2.7 MLP的訓練過程 358

10.3 卷積神經網路 358

10.3.1 理論基礎 358

10.3.2 卷積類 363

10.3.3 LeNet5函數 364

10.3.4 CNN的訓練過程 369

10.4 Theano安裝與GPU運算 370

10.4.1 Anaconda安裝 370

10.4.2 實現CPU運算 372

10.4.3 安裝VS2013 374

10.4.4 安裝CUDA 375

10.4.5 實現支持GPU運算 378

10.5 結語 378

第11章 概率圖模型與詞性標注 380

11.1 瑪律科夫過程 381

11.1.1 隨機過程與狀態圖 381

11.1.2 瑪律科夫鏈及其概念 382

11.1.3 瑪律科夫鏈的實現 384

11.2 概率圖模型和貝葉斯網 385

11.2.1 概述 385

11.2.2 條件獨立性 386

11.2.3 貝葉斯網簡介 390

11.2.4 貝葉斯網的構造 392

11.2.5 貝葉斯網的推理簡介 394

11.3 隱瑪律科夫模型 396

11.3.1 概述 396

11.3.2 HMM推理與前向演算法 399

11.3.3 Vertibi演算法原理 403

11.3.4 Vertibi演算法實現 405

11.3.5 執行並輸出結果 406

11.4 詞性標注系統 406

11.4.1 語料庫與詞性資源 407

11.4.2 手工計算 409

11.4.3 結果驗證 413

11.5 結語 414

8.3.2 構造SMO類 288

8.3.3 主函數 290

8.3.4 訓練資料 291

8.3.5 分類並評估演算法 293

8.4 SVM中文文本分類 293

8.4.1 回顧中文文本分類 294

8.4.2 Scikit-Learn SVM分類 294

8.4.3 評估結果 295

8.5 結語 296

第9章 人臉識別中的機器學習 297

9.1 模式識別概述 297

9.1.1 認知與模式 297

9.1.2 機器視覺與OpenCV 300

9.1.3 OpenCV的檔與基本操作 301

9.2 人臉檢測 305

9.2.1 人臉識別的歷史與架構 305

9.2.2 人臉識別系統 307

9.2.3 人臉檢測原理與Haar級聯檢測 308

9.2.4 人臉檢測特徵檔 311

9.2.5 Haar cascade的實現 314

9.2.6 LBP cascade的實現 315

9.3 AdaBoost演算法概述 316

9.3.1 演算法原理與步驟 316

9.3.2 輔助函數 317

9.3.3 AdaBoost分類器 318

9.3.4 單層決策樹分類子演算法 319

9.3.5 訓練資料集 321

9.3.6 執行分類 322

9.4 人臉識別 323

9.4.1 人臉資料庫 324

9.4.2 PCA原理 325

9.4.3 特徵臉識別類 327

9.4.4 生成特徵臉 328

9.4.5 執行人臉識別 330

9.5 結語 330

第10章 認知計算與深度學習 332

10.1 認知計算 332

10.1.1 認知層次論 333

10.1.2 從具體到抽象 336

10.1.3 Theano庫與基本操作 338

10.2 多層感知器 343

10.2.1 MNIST資料集 343

10.2.2 Softmax回歸類 345

10.2.3 正則化方法 347

10.2.4 執行SoftMax學習 350

10.2.5 多層感知器 353

10.2.6 多層感知器的實現 355

10.2.7 MLP的訓練過程 358

10.3 卷積神經網路 358

10.3.1 理論基礎 358

10.3.2 卷積類 363

10.3.3 LeNet5函數 364

10.3.4 CNN的訓練過程 369

10.4 Theano安裝與GPU運算 370

10.4.1 Anaconda安裝 370

10.4.2 實現CPU運算 372

10.4.3 安裝VS2013 374

10.4.4 安裝CUDA 375

10.4.5 實現支持GPU運算 378

10.5 結語 378

第11章 概率圖模型與詞性標注 380

11.1 瑪律科夫過程 381

11.1.1 隨機過程與狀態圖 381

11.1.2 瑪律科夫鏈及其概念 382

11.1.3 瑪律科夫鏈的實現 384

11.2 概率圖模型和貝葉斯網 385

11.2.1 概述 385

11.2.2 條件獨立性 386

11.2.3 貝葉斯網簡介 390

11.2.4 貝葉斯網的構造 392

11.2.5 貝葉斯網的推理簡介 394

11.3 隱瑪律科夫模型 396

11.3.1 概述 396

11.3.2 HMM推理與前向演算法 399

11.3.3 Vertibi演算法原理 403

11.3.4 Vertibi演算法實現 405

11.3.5 執行並輸出結果 406

11.4 詞性標注系統 406

11.4.1 語料庫與詞性資源 407

11.4.2 手工計算 409

11.4.3 結果驗證 413

11.5 結語 414

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示