Python 與機器學習實戰:決策樹、集成學習、支持向量機與神經網絡算法詳解及編程實現

何宇健

  • 出版商: 電子工業
  • 出版日期: 2017-07-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 315
  • 裝訂: 平裝
  • ISBN: 7121317206
  • ISBN-13: 9787121317200
  • 相關分類: Machine Learning
  • 已絕版

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

商品描述

Python與機器學習這一話題是如此的寬廣,僅靠一本書自然不可能涵蓋到方方面面,甚至即使出一個系列也難能做到這點。

單就機器學習而言,其領域就包括但不限於如下:有監督學習(Supervised Learning),無監督學習(Unsupervised Learning)和半監督學習(Semi-Supervised Learning)。

而具體的問題又大致可以分兩類:分類問題(Classification)和回歸問題(Regression)。

Python本身帶有許多機器學習的第三方庫,但本書在絕大多數情況下只會用到Numpy這個基礎的科學計算庫來進行算法代碼的實現。這樣做的目的是希望讀者能夠從實現的過程中更好地理解機器學習算法的細節,以及瞭解Numpy的各種應用。不過作為補充,本書會在適當的時候應用scikit-learn這個成熟的第三方庫中的模型。本書適用於想瞭解傳統機器學習算法的學生和從業者,想知道如何高效實現機器的算法的程序員,以及想瞭解機器學習的算法能如何進行應用的職員、經理等。

目錄大綱

第1章Python與機器學習入門1 

1.1機器學習緒論1 

1.1.1什麼是機器學習2 

1.1.2機器學習常用術語3 

1.1.3機器學習的重要性6 

1.2人生苦短,我用Python 7 

1.2 .1為何選擇Python 7 

1.2.2 Python在機器學習領域的優勢8 

1.2.3 Anaconda的安裝與使用8 

1.3第一個機器學習樣例12 

1.3.1獲取與處理數據13 

1.3.2選擇與訓練模型14 

1.3.3評估與可視化結果15 

1.4本章小結17 

第2章貝葉斯分類器18 

2.1貝葉斯學派18 

2.1.1貝葉斯學派與頻率學派19 

2.1.2貝葉斯決策論19 

2.2參數估計20 

2.2.1極大似然估計(ML估計) 21 

2.2.2極大後驗概率估計(MAP估計) 22 

2.3樸素貝葉斯23 

2.3.1算法陳述與基本架構的搭建23 

2.3.2 MultinomialNB的實現與評估31 

2.3.3 GaussianNB的實現與評估40 

2.3.4 MergedNB的實現與評估43 

2.3.5算法的向量化50 

2.4半樸素貝葉斯與貝葉斯網53 

2.4.1半樸素貝葉斯53 

2.4.2貝葉斯網54 

2.5相關數學理論55 

2.5.1貝 斯公式與後驗概率55 

2.5.2離散型樸素貝葉斯算法56 

2.5.3樸素貝葉斯和貝葉斯決策58 

2.6本章小結59 

第3章決策樹60 

3.1數據的信息60 

3.1.1信息論簡介61 

3.1.2不確定性61 

3.1.3信息的增益65 

3.1.4決策樹的生成68 

3.1.5相關的實現77 

3.2過擬合與剪枝92 

3.2.1 ID3、C4.5的剪枝算法93 

3.2.2 CART剪枝100 

3.3評估與可視化103 

3.4相關數學理論111 

3.5本章小結113 

第4章集成學習114 

4.1 “集成”的思想114 

4.1.1眾擎易舉115 

4.1.2 Bagging與隨機森林115 

4.1.3 PAC框架與Boosting 119 

4.2隨機森林算法120 

4.3 AdaBoost算法124 

4.3.1 AdaBoost算法陳述124 

4.3.2弱模型的選擇126 

4.3.3 AdaBoost的實現127 

4.4集成模型的性能分析129 

4.4. 1隨機數據集上的表現130 

4.4.2異或數據集上的表現131 

4.4.3螺旋數據集上的表現134 

4.4.4蘑菇數據集上的表現136 

4.5 AdaBoost算法的解釋138 

4.6相關數學理論139 

4.6.1經驗分佈函數139 

4.6.2 AdaBoost與前向 步加法模型140 

4.7本章小結142 

第5章支持向量機144 

5.1感知機模型145 

5.1.1線性可分性與感知機策略145 

5.1.2感知機算法148 

5.1.3感知機算法的對偶形式151 

5.2從感知機到支持向量機153 

5.2.1間隔最大化與線性SVM 154 

5.2.2 SVM算法的對偶形式158 

5.2.3 SVM的訓練161 

5.3從線性到非線性163 

5.3.1核技巧簡述163 

5.3 .2核技巧的應用166 

5.4多分類與支持向量回歸180 

5.4.1一對多方法(One-vs-Rest) 180 

5.4.2一對一方法(One-vs-One) 181 

5.4.3有向無環圖方法(Directed Acyclic Graph Method) 181 

5.4.4支持向量回歸(Support Vector Regression) 182 

5.5相關數學理論183 

5.5.1梯度下降法183 

5.5.2拉格朗日對偶性185 

5.6本章小結187 

第6章神經網絡188 

6.1從感知機到多層感知機189 

6.2前向傳導算法192 

6.2.1算法概述193 

6.2.2激活函數(Activation Function) 195 

6.2.3損失函數(Cost Function) 199 

6.3反向傳播算法200 

6.3.1算法 述200 

6.3.2損失函數的選擇202 

6.3.3相關實現205 

6.4特殊的層結構211 

6.5參數的更新214 

6.5.1 Vanilla Update 217 

6.5.2 Momentum Update 217 

6.5.3 Nesterov Momentum Update 219 

6.5.4 RMSProp 220 

6.5.5 Adam 221 

6.5.6 Factory 222 

6.6樸素的網絡結構223 

6.7 “大數據”下的網絡結構227 

6.7.1分批(Batch)的思想228 

6.7.2交叉驗證230 

6.7.3進度條231 

6.7.4計時器233 

6.8相關數學理論235 

6.8.1 BP算法的推導235 

6.8.2 Softmax + log-likelihood組合238 

6.9本章小結240 

第7章卷積神經網絡241 

7.1從NN到CNN 242 

7.1.1 “視野”的共享242 

7.1.2前向傳導算法243 

7.1.3全連接層(Fully Connected Layer) 250 

7.1.4池化(Pooling) 251 

7.2利用TensorFlow重寫NN 252 

7.2.1反向傳播算法252 

7.2.2重寫Layer結構253 

7.2.3實現SubLayer結構255 

7.2.4重寫CostLayer結構261 

7.2.5重寫網絡結構262 

7.3將NN擴展為CNN 263 

7.3.1實現卷積層263 

7.3.2實現池化層266 

7.3.3實現CNN中的特殊層結 構267 

7.3.4實現LayerFactory 268 

7.3.5擴展網絡結構270 

7.4 CNN的性能272 

7.4.1問題描述272 

7.4.2搭建CNN模型273 

7.4.3模型分析280 

7.4.4應用CNN的方法283 

7.4.5 Inception 286 

7.5本章小結289 

附錄A Python入門290 

附錄B Numpy入門303 

附錄C TensorFlow入門310