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