程序員的數(shù)學基礎課 從理論到Python實踐
定 價:89 元
- 作者:黃申 著
- 出版時間:2021/3/1
- ISBN:9787115553614
- 出 版 社:人民郵電出版社
- 中圖法分類:TP301.6
- 頁碼:314
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書緊貼計算機領域,從程序員的需求出發(fā),精心挑選了程序員真正用得上的數(shù)學知識,通過生動的案例來解讀知識中的難點,使程序員更容易對實際問題進行數(shù)學建模,進而構(gòu)建出更優(yōu)化的算法和代碼。本書共分為三大模塊:“基礎思想”篇梳理編程中常用的數(shù)學概念和思想,既由淺入深地精講數(shù)據(jù)結(jié)構(gòu)與數(shù)學中基礎、核心的數(shù)學知識,又闡明數(shù)學對編程和算法的真正意義;“概率統(tǒng)計”篇以概率統(tǒng)計中核心的貝葉斯公式為基點,向上講解隨機變量、概率分布等基礎概念,向下講解樸素貝葉斯,并分析其在生活和編程中的實際應用,使讀者真正理解概率統(tǒng)計的本質(zhì),跨越概念和應用之間的鴻溝;“線性代數(shù)”篇從線性代數(shù)中的核心概念向量、矩陣、線性方程入手,逐步深入分析這些概念是如何與計算機融會貫通以解決實際問題的。除了理論知識的闡述,本書還通過Python語言,分享了通過大量實踐積累下來的寶貴經(jīng)驗和編碼,使讀者學有所用。 本書的內(nèi)容從概念到應用,再到本質(zhì),層層深入,不但注重培養(yǎng)讀者養(yǎng)成良好的數(shù)學思維,而且努力使讀者的編程技術實現(xiàn)進階,非常適合希望從本質(zhì)上提升編程質(zhì)量的中級程序員閱讀和學習。
適讀人群 :有一定數(shù)據(jù)結(jié)構(gòu)和編程經(jīng)驗的程序員,人工智能和機器學習算法的初級到中級學習者
1.緊緊圍繞程序員的需求。
數(shù)學的課題非常廣泛,但本書沒有涉及數(shù)學領域的全部課題,而是從程序員的需求出發(fā),精心挑選了編程所需的常用知識點,并實現(xiàn)學以致用。
2.結(jié)合生動的案例和形象的比喻解讀難點。
降低技術理解的門檻,讓程序員更容易理解數(shù)學背后的邏輯,并對實際生產(chǎn)問題進行數(shù)學建模,進而設計出更有效的算法,編寫出更優(yōu)雅的代碼。
3.注重編程實踐。
除了闡述理論知識,書中還提供了要通過大量實踐才能積累的寶貴經(jīng)驗,讓讀者有機會親自動手編寫Python 代碼,進而加深理解。
4.提供源代碼下載。
黃申,博士,2015 年美國杰出人才,微軟學者,IBM ExtremeBlue天才計劃成員,KDD WISDOM'20主席。2006年博士畢業(yè)于上海交通大學計算機科學與工程專業(yè),師從俞勇教授,發(fā)表過20 余篇國際論文,擁有30多項國際專利。
有20多年機器學習和大數(shù)據(jù)領域的經(jīng)驗,現(xiàn)任Glassdoor機器學習資深研發(fā)經(jīng)理,曾任職于LinkedIn全球數(shù)據(jù)科學部、微軟亞洲研究院、IBM研究院、eBay中國研發(fā)中心,1號店和***飛牛網(wǎng)。
著有《大數(shù)據(jù)架構(gòu)和算法實現(xiàn)之路:電商系統(tǒng)的技術實戰(zhàn)》《大數(shù)據(jù)架構(gòu)商業(yè)之路:從業(yè)務需求到技術方案》兩本原創(chuàng)技術圖書,并翻譯出版了《Elasticsearch實戰(zhàn)》《Python機器學習實踐指南》等技術圖書,在極客時間發(fā)表了專欄《程序員的數(shù)學基礎課》。
第 一篇 基礎思想1
第 1章 二進制、余數(shù)和布爾代數(shù)2
1.1 二進制2
1.1.1 二進制計數(shù)法2
1.1.2 二進制的位操作3
1.1.3 負數(shù)的二進制表示11
1.2 余數(shù)15
1.2.1 求余和同余定理15
1.2.2 哈希16
1.2.3 奇偶校驗17
1.2.4 交叉驗證19
1.3 布爾代數(shù)19
1.3.1 邏輯19
1.3.2 集合23
第 2章 迭代、數(shù)學歸納和遞歸30
2.1 迭代法30
2.1.1 迭代法簡介30
2.1.2 迭代法的應用31
2.2 數(shù)學歸納法37
2.3 遞歸41
2.3.1 從數(shù)學歸納法到遞歸42
2.3.2 分而治之44
2.4 迭代法、數(shù)學歸納法和遞歸的關聯(lián)56
第3章 排列、組合和動態(tài)規(guī)劃58
3.1 排列58
3.2 組合62
3.3 動態(tài)規(guī)劃65
3.3.1 編輯距離66
3.3.2 狀態(tài)轉(zhuǎn)移67
3.3.3 狀態(tài)轉(zhuǎn)移方程和編程實現(xiàn)70
3.3.4 動態(tài)規(guī)劃解決最優(yōu)組合72
第4章 樹和圖74
4.1 圖和樹的概念74
4.2 樹的常見應用77
4.2.1 WordNet中的關聯(lián)詞77
4.2.2 二叉樹81
4.3 樹的深度優(yōu)先搜索和遍歷83
4.3.1 前綴樹的構(gòu)建和查詢83
4.3.2 深度優(yōu)先的實現(xiàn)88
4.4 樹和圖的廣度優(yōu)先搜索和遍歷94
4.4.1 社交網(wǎng)絡中的好友問題94
4.4.2 實現(xiàn)社交好友推薦99
4.4.3 如何更高效地求兩個用戶間的最短路徑104
4.4.4 更有效的嵌套型聚合111
4.5 圖中的最短路徑114
4.5.1 基于廣度優(yōu)先或深度優(yōu)先搜索的方法115
4.5.2 一個優(yōu)化的版本:Dijkstra算法116
第5章 編程中的數(shù)學思維126
5.1 數(shù)據(jù)結(jié)構(gòu)、編程語言和基礎算法126
5.1.1 數(shù)據(jù)結(jié)構(gòu)126
5.1.2 編程語句128
5.1.3 基礎算法128
5.2 算法復雜度分析129
5.2.1 復雜度分析的原理和法則130
5.2.2 復雜度分析的案例134
第二篇 概率統(tǒng)計138
第6章 概率和統(tǒng)計基礎139
6.1 概論和統(tǒng)計對于編程的意義139
6.1.1 概率和統(tǒng)計的概念139
6.1.2概率和統(tǒng)計可以做什么140
6.2 隨機變量、概率分布和期望值141
6.2.1 隨機變量141
6.2.2 概率分布142
6.2.3 期望值157
6.3 聯(lián)合概率、條件概率和貝葉斯定理159
6.3.1 聯(lián)合概率、條件概率和邊緣概率159
6.3.2 貝葉斯定理162
6.3.3 隨機變量之間的獨立性163
第7章 樸素貝葉斯分類165
7.1 原始信息的轉(zhuǎn)換165
7.2 樸素貝葉斯的核心思想166
7.3 基于樸素貝葉斯算法的文本分類170
7.3.1 文本分類系統(tǒng)的基本框架170
7.3.2 自然語言的預處理171
7.3.3 樸素貝葉斯模型的構(gòu)建174
7.3.4 樸素貝葉斯模型的預測176
7.3.5 樸素貝葉斯分類的實現(xiàn)177
第8章 馬爾可夫過程181
8.1 語言模型181
8.1.1 鏈式法則181
8.1.2 馬爾可夫假設181
8.1.3 模型推導182
8.2 語言模型的應用183
8.2.1 信息檢索183
8.2.2 中文分詞184
8.3 馬爾可夫模型184
8.4 隱馬爾可夫模型188
8.4.1 模型的原理188
8.4.2 模型的求解192
8.4.3 模型的實現(xiàn)195
第9章 信息熵200
9.1信息熵和信息增益200
9.1.1 性格測試中的信息熵200
9.1.2 信息增益203
9.2 通過信息增益進行決策204
9.2.1 通過信息熵挑選合適的問題204
9.2.2 幾種決策樹算法207
9.3 特征選擇209
9.3.1 特征選擇209
9.3.2 利用信息熵進行特征選擇209
9.3.3 利用卡方檢驗進行特征選擇210
第 10章 數(shù)據(jù)分布212
10.1 特征變換212
10.1.1 為什么需要特征變換212
10.1.2 兩種常見的特征變換方法214
10.2 統(tǒng)計意義217
10.2.1 顯著性差異219
10.2.2 統(tǒng)計假設檢驗和顯著性檢驗220
10.2.3 P值220
10.2.4 不同的檢驗方法221
10.3 擬合、欠擬合和過擬合及其處理229
10.3.1 擬合、欠擬合和過擬合229
10.3.2欠擬合和過擬合的處理233
第三篇 線性代數(shù)235
第 11章 線性代數(shù)基礎236
11.1 向量和向量空間236
11.1.1 向量的概念236
11.1.2 向量的運算239
11.1.3 向量空間244
11.2 矩陣250
11.2.1 矩陣的運算250
11.2.2 矩陣運算的幾何意義252
第 12章 文本處理中的向量空間模型256
12.1 信息檢索256
12.1.1 信息檢索的概念256
12.1.2 信息檢索中的向量空間模型257
12.2 文本聚類259
12.2.1 聚類算法的概念259
12.2.2 使用向量空間進行聚類260
12.3 文本分類263
第 13章 對象間關系的刻畫——矩陣267
13.1 PageRank的矩陣實現(xiàn)267
13.1.1 PageRank算法的回顧267
13.1.2 簡化PageRank公式267
13.1.3 考慮隨機跳轉(zhuǎn)269
13.1.4 代碼的實現(xiàn)270
13.2 用矩陣實現(xiàn)推薦系統(tǒng)272
13.2.1 用矩陣實現(xiàn)推薦系統(tǒng)的核心思想272
13.2.2 基于用戶的過濾272
13.2.3 基于物品的過濾277
第 14章 矩陣的特征279
14.1 主成分分析(PCA)279
14.1.1 PCA的主要步驟279
14.1.2 PCA背后的核心思想286
14.2 奇異值分解(SVD)288
14.2.1 方陣的特征分解288
14.2.2 矩陣的奇異值分解289
14.2.3 潛在語義分析和SVD291
第 15章 回歸分析294
15.1 線性方程組294
15.1.1 高斯消元法295
15.1.2 使用矩陣實現(xiàn)高斯消元法296
15.2 最小二乘法299
15.2.1 通過觀測值的擬合300
15.2.2 最小二乘法302
15.2.3 補充證明和解釋303
15.2.4 演算示例305
第 16章 神經(jīng)網(wǎng)絡311
16.1 神經(jīng)網(wǎng)絡的基本原理311
16.2 基于TensorFlow的實現(xiàn)317
16.3 Word2Vec327