機器學習算法原理與編程實踐

機器學習算法原理與編程實踐 pdf epub mobi txt 電子書 下載 2025

鄭捷 著
圖書標籤:
  • 機器學習
  • 算法
  • Python
  • 數據科學
  • 人工智能
  • 實踐
  • 編程
  • 模型
  • 理論
  • 統計學習
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121273674
版次:1
商品編碼:11798750
包裝:平裝
開本:16開
齣版時間:2015-10-01
用紙:膠版紙
頁數:432
字數:704000
正文語種:中文

具體描述

編輯推薦

適讀人群 :適用於中高水平的程序設計人員、大學理科生、以及對機器學習感興趣的各類愛好者

  《機器學習算法原理與編程實踐》圍繞神經網絡、智能推理、矩陣計算三大主綫,提供近25個經典的算法講解。解剖有代錶性的算法庫:Scikit-Learn算法庫、OpenCV機器視覺、Theano深度學習庫。作為本土原創圖書,本書更符閤國內人的閱讀習慣,適閤作為機器學習算法設計的入門讀物。

內容簡介

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

作者簡介

  鄭捷,www.threedweb.cn網站負責人,研究方嚮是機器學習與自然語言處理。當前負責的核心産品是高精度自然語言認知係統的設計與研發,研發目標是高精度(識彆率在85%~95%)的統一架構的NLP認知係統。

目錄

第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 最小剩餘方差法 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 從亞馬遜網站認識推薦係統 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 最優化與計算復雜性 149
5.1.1 最優化理論 149
5.1.2 最優化的數學描述 150
5.1.3 凸集與分離定理 151
5.1.4 凸函數及其性質 153
5.1.5 局部最優與全局最優 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 最短路徑的實現 222
6.5.6 執行算法 223
6.5.7 評估結果 224
6.6 結語 225
第7章 預測的技術與哲學 226
7.1 綫性係統的預測 226
7.1.1 迴歸與現代預測學 226
7.1.2 最小二乘法 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章 萬能分類器――支持嚮量機 265
8.1 支持嚮量機的理論基礎 266
8.1.1 經驗風險最優 266
8.1.2 關鍵定理與VC維 267
8.1.3 結構風險最優 270
8.2 SVM的數學推導 272
8.2.1 最大間隔超平麵 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

前言/序言

  動機

  2011年1月14日,史上最強的人機對抗在美國紐約約剋鎮高地拉開序幕。Jeopardy!是美國具有25年曆史的眾所皆知的電視問答節目秀。每次三名參賽者相互角逐,在競賽中需要迅速理解屏幕上提齣的各類智力問題,並作齣迴答。問題涉及的領域十分廣泛,就像一套世界知識的百科全書,超過個人所能掌握的知識容量的極限。而這次,一名特殊的參賽者名列其中,它就是IBM公司的計算機參賽者Watson,挑戰兩位人類選手Ken和Brad。經過激烈的角逐,Watson同時擊敗瞭兩位人類選手,贏得100萬美元奬金而一舉成名。這一具有曆史意義的比賽被Jeopardy!的哥倫比亞廣播公司連續在2011年2月14~16日三天晚上進行瞭重播,也成為計算機發展史上一個重要的時刻。IBM評論為:

  “在Jeopardy!比賽中,計算機打敗人類選手是開放領域問答係統的一個裏程碑!”

  事實上,這次比賽有力地證明瞭,在廣泛的知識和智能領域,機器有能力全麵超越人類。開放領域問答軟件的一個重要核心就是機器學習。從很多方麵來看,這纔僅僅是一個開始。近年來,計算機行業取得的最重要成就或多或少地都與機器學習領域的技術突破密切相關。2010年前後,多倫多大學的Geoffrey Hinton提齣的深度學習(Deep Learning)算法,突破瞭産生抽象概念的技術瓶頸,被評價為:

  “藉助於DeepLearning算法,人類終於找到瞭如何處理‘抽象概念’這個亙古難題的方法。”

  該算法與衍生的捲積神經網絡(CNN——有監督)和深度置信網絡(DNN——無監督)在計算機視覺、語音識彆和部分自然語言處理領域獲得巨大的成功,其與另一個並行處理架構Map Reduce並稱“大數據”技術的基石。

  2012年11月,微軟在天津的一次活動上公開演示瞭一個全自動的同聲傳譯係統,講演者用英文演講,後颱的計算機一氣嗬成自動完成語音識彆、英中機器翻譯和中文語音閤成,效果非常流暢。據報道,後麵支撐的關鍵技術就是DNN,或者深度學習(DeepLearning,DL)。

  人與動物最本質的區彆之一就是人類具有高度發達的智能。韆百年來,人類從未停止過對智慧本身的研究與探索。20世紀50年代,圖靈就在論文《機器能思考嗎》中提齣瞭一個著名測試,後世稱為圖靈測試:

  “假如一颱機器通過特殊的方式與人溝通,若有一定比例的人(超過30%)無法在特定時間內(5分鍾)分辨齣與自己交談的是人還是機器,則可認為該機器具有‘思考’的能力。”

  這裏的思考能力就是指智能。而對於計算機領域而言,它是一個多麼奢侈而艱難的字眼。以IBM Watson為例,它由90颱IBM服務器、360個計算機芯片驅動組成,是一個有著10颱冰箱那麼大的計算機係統。它擁有15TB內存,2880颱處理器,每秒可進行80萬億次運算。係統配置的處理器是Power 7係列處理器,這是當前RISC(精簡指令集計算機)架構中最強的處理器。它采用45nm工藝打造,擁有8個核心、32個綫程,主頻最高可達4.1GHz,僅其二級緩存就達到32MB。

  在大數據領域,據Google稱,其知識圖譜的信息有許多來源,包括CIA的世界概況、Freebase和維基百科,其功能與Ask.com和Wolfram Alpha等問題問答係統相似。截至2012年,其語義網絡包含超過570億個對象,超過18億個介紹,用來理解搜索關鍵詞含義的、不同對象之間的鏈接關係更是不可計數。2012年11月4日,知識圖譜新增瞭7種語言:西班牙語、法語、德語、葡萄牙語、日語、俄羅斯語及意大利語。

  曆經半個多世紀,在各個領域的商業機構和科研機構的共同努力下,幾經沉浮,人們逐漸意識到,高度並行的計算(硬件)能力和大規模數據的學習(算法)能力是“思考”的基礎。距離讓機器像人類一樣思考的目標已經不遠瞭!

  本書特色

  本書的最大特色就是理論講解深入淺齣、通俗易懂,入門門檻不高,理論與實踐並重。降低學習門檻是我們主要的努力方嚮。對於中國讀者,特彆是廣大的工程技術人員,無論是在職還是學生,進入機器學習領域不外乎兩條路。

  第一條路是從開源代碼學習,輔助一些書籍資料。大多數軟件設計人員都做過幾年源碼解析工作,源碼解析這條路是比較辛苦的,但一旦掌握,就會形成一種條件反射。程序員寜可讀源碼也不願意讀數學公式,這是普遍現象。筆者認為,隨著機器學習一步步走嚮工程實踐,這部分人在讀者群中應占絕大部分。

  為瞭最大限度地降低學習的難度,首先,在內容上,我們以大量的文字描述來說明重要的定理和公式,盡可能在數學推導過程中增加充分的文字解釋,消除初學者的理解障礙。其次,我們將源碼、公式和文字解釋對照起來,使初學者在閱讀源碼和文字解釋的同時,也能夠輕鬆理解算法的數學原理,使他們認識到數學分析並不遙遠,理解起來並不睏難。最後,我們使用矢量編程的設計方式,這種方式的優勢是可以部分將數學公式直接映射到代碼上,代碼簡介,思路清晰,學習效率很高。三管齊下,使初學者能多角度加深算法概念的理解,在實踐應用中做到舉一反三。

  第二條路是從數學入手,一般針對研究所或科研院校的研究人員。他們喜歡那種有一定的理論高度,看明白瞭拿來就可以講課或寫論文用的書籍。這部分讀者的特點是比較重理論,缺點是實踐能力不強。本書可以通過豐富的算法代碼彌補他們在此方麵的不足。

  最後,本書由本土作者編寫。筆者翻譯過幾本國外的專業論文和書籍,也看過不少的本土經典。如果內容差異不大,從效率和接受程度上,看本土書籍要快很多,時間成本對任何一個人都是重要的;本土書籍的另一個優勢是作者與大多數的讀者都有相似的背景知識結構,因而沒有文化差異性,思路上很好理解,容易被讀者接受。本書內容多取材於實踐,目標明確,針對性強,對讀者而言學習效率高。

  本書內容及體係結構

  本書的特點之一是從結構上闡明瞭研究機器學習理論和算法的方法。最重要的不是數學,也不是這些算法本身,而是思想的發展過程,這與之前所有的書籍有所不同。全書分為三條主綫。

  第一條主綫是從第一代神經網絡(綫性分類器)、第二代神經網絡(非綫性)及其在預測領域的應用,到支持嚮量機,最後是深度學習。

  從第5章開始我們深入講解瞭感知器網絡及Logisitic網絡的算法及相關的理論基礎。第6章,我們詳細介紹瞭三種典型的神經網絡:BP網絡、SOM網絡、玻爾茲曼機網絡。這兩章的內容主要集中在第二代神經網絡的模型上。

  第8章我們從統計學習理論開始,深入探討瞭支持嚮量機的模型,並給齣瞭文本分類的實例。支持嚮量機的齣現結束瞭淺層機器學習算法的大多數問題,使人工智能走嚮瞭一個新階段。

  第9章和第10章我們詳細介紹瞭認知分層理論,並探討瞭人類神經係統的兩大重要機製:迭代和分層。由此引入瞭深度神經網絡框架(深度學習),並以Theano框架為中心介紹瞭GPU運算的模型。深度學習框架中的算法很多,我們介紹瞭多層感知器和捲積神經網絡兩個算法,作為讀者入門的基礎。

  第二條主綫是貝葉斯理論,從樸素貝葉斯算法到貝葉斯網,最後是隱馬爾科夫模型,這部分屬於智能推理的範疇。

  第2章我們詳細介紹瞭樸素貝葉斯算法在文本分類中的應用。由於文本處理的大多數算法都是以貝葉斯網為基礎的,而樸素貝葉斯是其中最簡單的算法,所以以此開篇。

  第11章,我們從隨機過程開始,層層深入,相繼介紹瞭馬爾可夫鏈、貝葉斯網絡、隱馬爾科夫模型。最後,我們給齣瞭隱馬爾科夫模型的重要應用——自然語言處理的詞性標注模塊,並給齣詳細的代碼講解和結巴分詞及詞性標注應用。

  最後一條主綫是矩陣降維、奇異值分解(svd)和PCA算法,因為算法簡單,本書都使用真實案例進行講解。

  第4章,我們通過一個實例介紹瞭推薦係統的內容,並分析介紹瞭協同過濾理論中的兩個重要算法:KMeans和SVD隱語義分析。我們不僅講解瞭SVD的數學推導,而且給齣瞭手工計算的代碼。

  第9章,我們講解瞭主成分分析(PCA)的基本原理和算法,並通過實例講解,列齣瞭PCA的算法實現和監測評估。

  第3章和第9章,我們介紹瞭決策時算法的發展曆史,以及各個曆史時期的代錶算法——ID3、C4.5、CART、AdaBoost,並給齣基本原理和代碼實現。

  目前機器學習主要由這三條主綫貫穿始終,本書著力於講解這三條主綫的理論發展、思想變遷、數學原理,而具體算法就是其上的一顆顆明珠。希望讀者在學習完本書之後,能夠將機器學習的各種理論融會貫通。


用戶評價

評分

老公的書。一直很很好!

評分

一次性買瞭很多的書,整體來說,書的質量還行,但是有兩本書一本背麵是舊的,一本印刷錯誤,沒有封麵也是醉瞭呀

評分

很好的書,應該是正版。

評分

不錯,好書,值得推薦

評分

條理不是太清楚,比較彆的書這個不是最好的,看後收獲不大。

評分

此用戶未填寫評價內容

評分

基本上買瞭所有的機器學習的書

評分

看瞭2周,看瞭14

評分

圖書材質很好,內容豐富。

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有