精通數據科學 從線性回歸到深度學習 精通数据科学 从线性回归到深度学习

唐亘

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

相關主題

商品描述

本書全面講解了數據科學的相關知識,從統計分析學到機器學習、深度學習中用到的算法及模型,借鑒經濟學視角給出模型的相關解釋,深入探討模型的可用性,並結合大量的實際案例和代碼幫助讀者學以致用,將具體的應用場景和現有的模型相結合,從而更好地發現模型的潛在應用場景。
本書可作為數據科學家和數據工程師的學慣用書,也適合對數據科學有強烈興趣的初學者使用,同時也可作為高等院校電腦、數學及相關專業的師生用書和培訓學校的教材。

作者簡介

唐亙,數據科學家,專注於機器學習和大數據。曾獲得複旦大學的數學和計算機雙學士學位;巴黎綜合理工的金融碩士學位;法國國立統計與經濟管理學校的數據科學碩士學位。熱愛並積極參與Apache Spark和Scikit-Learn等開源項目。作為講師和技術顧問,為多家機構(包括惠普、華為、復旦大學等)提供百餘場技術培訓。此前的工作和研究集中於經濟和量化金融,曾參與經濟合作與發展組織(OECD)的研究項目並發表論文,並擔任英國知名在線出版社Packt的技術審稿人。

目錄大綱

第1章數據科學概述1 

1.1挑戰2 
1.1.1工程實現的挑戰2 
1.1.2模型搭建的挑戰3 
1.2機器學習5 
1.2.1機器學習與傳統編程5 
1.2.2監督式學習和非監督式學習8 
1.3統計模型8 
1.4關於本書10 

第2章Python安裝指南與簡介:告別空談12 

2.1 Python簡介13 
2.1.1什麼是Python 15 
2.1.2 Python在數據科學中的地位16 
2.1.3不可能繞過的第三方庫17 
2.2 Python安裝17 
2.2.1 Windows下的安裝18 
2.2.2 Mac下的安裝21 
2.2.3 Linux下的安裝24 
2.3 Python上手實踐26 
2.3.1 Python shell 26 
2.3.2第一個Python程序:Word Count 28 
2.3.3 Python編程基礎30 
2.3.4 Python的工程結構34 
2.4本章小結35 

第3章數學基礎:惱人但又不可或缺的知識36 

3.1矩陣和向量空間37 
3.1.1標量、向量與矩陣37
3.1.2特殊矩陣39 
3.1.3矩陣運算39 
3.1.4代碼實現42 
3.1.5向量空間44 
3.2概率:量化隨機46 
3.2.1定義概率:事件和概率空間47 
3.2.2條件概率:信息的價值48 
3.2.3隨機變量:兩種不同的隨機50 
3.2.4正態分佈:殊途同歸52 
3.2.5 P-value:自信的猜測53 
3.3微積分55 
3.3.1導數和積分:位置、速度55 
3.3. 2極限:變化的終點57 
3.3.3複合函數:鍊式法則58 
3.3.4多元函數:偏導數59 
3.3.5極值與最值:最優選擇59 
3.4本章小結61 

第4章線性回歸:模型之母62 

4.1一個簡單的例子64 
4.1.1從機器學習的角度看這個問題66 
4.1.2從統計學的角度看這個問題69 
4.2上手實踐:模型實現73 
4.2.1機器學習代碼實現74 
4.2. 2統計方法代碼實現77 
4.3模型陷阱82 
4.3.1過度擬合:模型越複雜越好嗎84 
4.3.2模型幻覺之統計學方案:假設檢驗87 
4.3.3模型幻覺之機器學習方案:懲罰項89
4.3.4比較兩種方案92 
4.4模型持久化92 
4.4.1模型的生命週期93 
4.4.2保存模型93 
4.5本章小結96 

第5章邏輯回歸:隱藏因子97 

5.1二元分類問題:是與否98 
5.1.1線性回歸:為何失效98 
5.1.2窗口效應:看不見的才是關鍵100 
5.1.3邏輯分佈:勝者生存102 
5.1.4參數估計之似然函數:統計學角度104 
5.1.5參數估計之損失函數:機器學習角度104 
5.1.6參數估計之最終預測:從概率到選擇106 
5.1.7空間變換:非線性到線性106 
5.2上手實踐:模型實現108 
5.2.1初步分析數據:直觀印象108 
5.2.2搭建模型113 
5.2.3理解模型結果116 
5.3評估模型效果:孰優孰劣118 
5.3.1查准率與查全率119 
5.3.2 ROC曲線與AUC 123 
5.4多元分類問題:超越是與否127 
5.4.1多元邏輯回歸:邏輯分佈的威力128 
5.4.2 One-vs.-all:從二元到多元129 
5.4.3模型實現130 
5.5非均衡數據集132 
5.5.1準確度悖論132
5.5.2一個例子133 
5.5.3解決方法135 
5.6本章小結136 

第6章工程實現:計算機是怎麼算的138 

6.1算法思路:模擬滾動139 
6.2數值求解:梯度下降法141 
6.3上手實踐:代碼實現142 
6.3.1 TensorFlow基礎143 
6.3.2定義模型148 
6.3.3梯度下降149 
6.3.4分析運行細節150 
6.4更優化的算法:隨機梯度下降法153 
6.4.1算法細節153 
6.4.2代碼實現154 
6.4. 3兩種算法比較156 
6.5本章小結158 

第7章計量經濟學的啟示:他山之石159 

7.1定量與定性:變量的數學運算合理嗎161 
7.2定性變量的處理162 
7.2.1虛擬變量162 
7.2. 2上手實踐:代碼實現164 
7.2.3從定性變量到定量變量168 
7.3定量變量的處理170 
7.3.1定量變量轉換為定性變量171 
7.3.2上手實踐:代碼實現171 
7.3.3基於卡方檢驗的方法173 
7.4顯著性175 
7.5多重共線性:多變量的煩惱176
7.5.1多重共線性效應176 
7.5.2檢測多重共線性180 
7.5.3解決方法185 
7.5.4虛擬變量陷阱188 
7.6內生性:變化來自何處191 
7.6.1來源192 
7.6.2內生性效應193 
7.6.3工具變量195 
7.6.4邏輯回歸的內生性198 
7.6.5模型的聯結200 
7.7本章小結201 

第8章監督式學習:目標明確202 

8.1支持向量學習機203 
8.1.1直觀例子204 
8.1. 2用數學理解直觀205 
8.1.3從幾何直觀到最優化問題207 
8.1.4損失項209 
8.1.5損失函數與懲罰項210 
8.1.6 Hard margin與soft margin比較211 
8.1.7支持向量學習機與邏輯回歸:隱藏的假設213 
8.2核函數216 
8.2.1空間變換:從非線性到線性216 
8.2.2拉格朗日對偶218 
8.2.3支持向量220 
8.2.4核函數的定義:優化運算221 
8.2 .5常用的核函數222 
8.2.6 Scale variant 225 
8.3決策樹227
8.3.1決策規則227 
8.3.2評判標準229 
8.3.3代碼實現231 
8.3.4決策樹預測算法以及模型的聯結231 
8.3.5剪枝235 
8.4樹的集成238 
8.4.1隨機森林238 
8.4.2 Random forest embedding 239 
8.4.3 GBTs之梯度提升241 
8.4.4 GBTs之算法細節242 
8.5本章小結244 

第9章生成式模型:量化信息的價值246 

9.1貝葉斯框架248 
9.1.1蒙提霍爾問題248 
9.1.2條件概率249 
9.1.3先驗概率與後驗概率251 
9.1.4參數估計與預測公式251 
9.1.5貝葉斯學派與頻率學派252 
9.2樸素貝葉斯254 
9.2.1特徵提取:文字到數字254 
9.2.2伯努利模型256 
9.2.3多項式模型258 
9.2.4 TF-IDF 259 
9.2.5文本分類的代碼實現260 
9.2.6模型的聯結265 
9.3判別分析266 
9.3.1線性判別分析267 
9.3.2線性判別分析與邏輯回歸比較269
9.3.3數據降維270 
9.3.4代碼實現273 
9.3.5二次判別分析275 
9.4隱馬爾可夫模型276 
9.4.1一個簡單的例子276 
9.4.2馬爾可夫鏈278 
9.4.3模型架構279 
9.4.4中文分詞:監督式學習280 
9.4.5中文分詞之代碼實現282 
9.4.6股票市場:非監督式學習284 
9.4.7股票市場之代碼實現286 
9.5本章小結289 

第10章非監督式學習:聚類與降維290 

10.1 K-means 292 
10.1.1模型原理292 
10.1.2收斂過程293 
10.1.3如何選擇聚類個數295 
10.1.4應用示例297 
10.2其他聚類模型298 
10.2.1混合高斯之模型原理299 
10.2.2混合高斯之模型實現300 
10.2.3譜聚類之聚類結果303 
10.2.4譜聚類之模型原理304 
10.2.5譜聚類之圖片分割307 
10.3 Pipeline 308 
10.4主成分分析309 
10.4.1模型原理310 
10.4.2模型實現312
10.4.3核函數313 
10.4.4 Kernel PCA的數學原理315 
10.4.5應用示例316 
10.5奇異值分解317 
10.5.1定義317 
10.5.2截斷奇異值分解317 
10.5.3潛在語義分析318 
10.5.4大型推薦系統320 
10.6本章小結323 

第11章分佈式機器學習:集體力量325 

11.1 Spark簡介327 
11.1.1 Spark安裝328 
11.1.2從MapReduce到Spark 333 
11.1.3運行Spark 335 
11.1.4 Spark DataFrame 336 
11.1. 5 Spark的運行架構339 
11.2最優化問題的分佈式解法341 
11.2.1分佈式機器學習的原理341 
11.2.2一個簡單的例子342 
11.3大數據模型的兩個維度344 
11.3.1數據量維度344 
11.3 .2模型數量維度346 
11.4開源工具的另一面348 
11.4.1一個簡單的例子349 
11.4.2開源工具的阿喀琉斯之踵351 
11.5本章小結351 

第12章神經網絡:模擬人的大腦353

12.1神經元355 
12.1.1神經元模型355 
12.1.2 Sigmoid神經元與二元邏輯回歸356 
12.1.3 Softmax函數與多元邏輯回歸358 
12.2神經網絡360 
12.2.1圖形表示360 
12.2.2數學基礎361 
12.2 .3分類例子363 
12.2.4代碼實現365 
12.2.5模型的聯結369 
12.3反向傳播算法370 
12.3.1隨機梯度下降法回顧370 
12.3.2數學推導371 
12.3.3算法步驟373 
12.4提高神經網絡的學習效率373 
12.4.1學習的原理373 
12.4.2激活函數的改進375 
12.4.3參數初始化378 
12.4.4不穩定的梯度380 
12.5本章小結381 

第13章深度學習:繼續探索383 

13.1利用神經網絡識別數字384 
13.1.1搭建模型384 
13.1.2防止過擬合之懲罰項386 
13.1.3防止過擬合之dropout 387 
13.1.4代碼實現389 
13.2卷積神經網絡394 
13.2.1模型結構之卷積層395
13.2.2模型結構之池化層397 
13.2.3模型結構之完整結構399 
13.2.4代碼實現400 
13.2.5結構真的那麼重要嗎405 
13.3其他深度學習模型406 
13.3.1遞歸神經網絡406 
13.3. 2長短期記憶407 
13.3.3非監督式學習409 
13.4本章小結411