《Python貝葉斯分析》從務(wù)實和編程的角度講解了貝葉斯統(tǒng)計中的主要概念,并介紹了如何使 用流行的 PyMC3 來構(gòu)建概率模型。閱讀本書,讀者將掌握實現(xiàn)、檢查和擴展貝 葉斯統(tǒng)計模型,從而提升解決一系列數(shù)據(jù)分析問題的能力。本書不要求讀者有任 何統(tǒng)計學(xué)方面的基礎(chǔ),但需要讀者有使用 Python 編程方面的經(jīng)驗。
本書介紹了貝葉斯統(tǒng)計中的主要概念,以及將其應(yīng)用于數(shù)據(jù)分析的方法。本書采用編程計算的實用方法介紹了貝葉斯建模的基礎(chǔ),使用一些手工構(gòu)造的數(shù)據(jù)和一部分簡單的真實數(shù)據(jù)來解釋和探索貝葉斯框架中的核心概念,然后在本書涉及的模型中,抽象出了線性模型用于解決回歸和分類問題,此外還詳細解釋了混合模型和分層模型,并單獨用一章討論了如何做模型選擇,還簡單介紹了非參模型和高斯過程。
本書所有的貝葉斯模型都用PyMC3實現(xiàn)。PyMC3是一個用于概率編程的Python庫,其許多特性都在書中有介紹。在本書和PyMC3的幫助下,讀者將學(xué)會實現(xiàn)、檢查和擴展貝葉斯統(tǒng)計模型,從而解決一系列數(shù)據(jù)分析的問題。
從本書你將學(xué)到:
從實用的角度理解基本的貝葉斯概念;
學(xué)習(xí)如何用PyMC3構(gòu)建概率模型;
掌握檢查和修改模型的技能;
利用分層模型的優(yōu)勢給模型加入結(jié)構(gòu);
針對不同的數(shù)據(jù)分析問題,找到合適的模型;
學(xué)會在不確定的情況下做模型選擇;
用回歸分析預(yù)測連續(xù)變量,用邏輯回歸或softmax做分類;
學(xué)習(xí)如何從概率的角度思考,釋放貝葉斯框架的靈活性與力量。
Osvaldo Martin 是阿根廷國家科學(xué)與技術(shù)理事會(CONICET)的一名研究員。該理事會是負責(zé)阿根廷科技進步的主要組織。Osvaldo Martin 曾從事結(jié)構(gòu)生物信息學(xué)和計算生物學(xué)方面的研究,此外,他在應(yīng)用馬爾科夫蒙特卡洛方法模擬分子方面有著豐富的經(jīng)驗,尤其喜歡用 Python 解決數(shù)據(jù)分析問題。他曾講授結(jié)構(gòu)生物信息學(xué)、Python 編程等課程,還開設(shè)了貝葉斯數(shù)據(jù)分析的課程。Python和貝葉斯統(tǒng)計改變了他對科學(xué)的認知和對問題的思考方式。他寫本書的動力是希望借助 Python 幫助大家理解概率模型,同時,他也是 PyMOL 社區(qū)(一個基于C/Python 的分子可視化社區(qū))的活躍成員,他也對PyMC3 社區(qū)做了一些貢獻。
譯者簡介
田俊,計算機專業(yè)碩士。2016 年畢業(yè)于中國科學(xué)院自動化研究所,主要研究方向為自然語言處理中的短文本分類,畢業(yè)后曾在滴滴出行擔(dān)任算法工程師,目前在微軟從事自然語言處理方面的工作。
中文版審校者簡介
勞俊鵬,心理學(xué)博士,PyMC團隊成員。2014年畢業(yè)于英國格拉斯哥大學(xué),主要研究認知神經(jīng)心理學(xué)。2013年至今在瑞士弗里堡大學(xué)從事心理學(xué)研究,專攻數(shù)據(jù)建模分析和神經(jīng)計算模型。
第 1章 概率思維——貝葉斯推斷指南 1
1.1 以建模為中心的統(tǒng)計學(xué) 1
1.1.1 探索式數(shù)據(jù)分析 2
1.1.2 統(tǒng)計推斷 3
1.2 概率與不確定性 4
1.2.1 概率分布 6
1.2.2 貝葉斯定理與統(tǒng)計推斷 9
1.3 單參數(shù)推斷 11
1.3.1 拋硬幣問題 11
1.3.2 報告貝葉斯分析結(jié)果 20
1.3.3 模型注釋和可視化 20
1.3.4 總結(jié)后驗 21
1.4 后驗預(yù)測檢查 24
1.5 安裝必要的 Python 庫 24
1.6 總結(jié) 25
1.7 練習(xí) 25
第2章 概率編程——PyMC3 編程指南 27
2.1 概率編程 27
2.1.1 推斷引擎 28
2.2 PyMC3 介紹 40
2.2.1 用計算的方法解決拋硬幣問題 40
2.3 總結(jié)后驗 47
2.3.1 基于后驗的決策 48
2.4 總結(jié) 50
2.5 深入閱讀 50
2.6 練習(xí) 51
第3章 多參和分層模型 53
3.1 冗余參數(shù)和邊緣概率分布 53
3.2 隨處可見的高斯分布 55
3.2.1 高斯推斷 56
3.2.2 魯棒推斷 59
3.3 組間比較 64
3.3.1 “小費”數(shù)據(jù)集 65
3.3.2 Cohen’s d 68
3.3.3 概率優(yōu)勢 69
3.4 分層模型 69
3.4.1 收縮 72
3.5 總結(jié) 74
3.6 深入閱讀 75
3.7 練習(xí) 75
第4章 利用線性回歸模型理解并預(yù)測數(shù)據(jù) 77
4.1 一元線性回歸 77
4.1.1 與機器學(xué)習(xí)的聯(lián)系 78
4.1.2 線性回歸模型的核心 78
4.1.3 線性模型與高自相關(guān)性 83
4.1.4 對后驗進行解釋和可視化 86
4.1.5 皮爾遜相關(guān)系數(shù) 89
4.2 魯棒線性回歸 95
4.3 分層線性回歸 98
4.3.1 相關(guān)性與因果性 103
4.4 多項式回歸 105
4.4.1 解釋多項式回歸的系數(shù) 107
4.4.2 多項式回歸——終極模型? 108
4.5 多元線性回歸 108
4.5.1 混淆變量和多余變量 112
4.5.2 多重共線性或相關(guān)性太高 115
4.5.3 隱藏的有效變量 117
4.5.4 增加相互作用 120
4.6 glm 模塊 120
4.7 總結(jié) 121
4.8 深入閱讀 121
4.9 練習(xí) 122
第5章 利用邏輯回歸對結(jié)果進行分類 123
5.1 邏輯回歸 123
5.1.1 邏輯回歸模型 125
5.1.2 鳶尾花數(shù)據(jù)集 125
5.1.3 將邏輯回歸模型應(yīng)用到鳶尾花數(shù)據(jù)集 128
5.2 多元邏輯回歸 131
5.2.1 決策邊界 132
5.2.2 模型實現(xiàn) 132
5.2.3 處理相關(guān)變量 134
5.2.4 處理類別不平衡數(shù)據(jù) 135
5.2.5 如何解決類別不平衡的問題 137
5.2.6 解釋邏輯回歸的系數(shù) 137
5.2.7 廣義線性模型 138
5.2.8 Softmax 回歸或多項邏輯回歸 139
5.3 判別式和生成式模型 142
5.4 總結(jié) 144
5.5 深入閱讀 145
5.6 練習(xí) 145
第6章 模型比較 147
6.1 奧卡姆剃刀——簡約性與準確性 147
6.1.1 參數(shù)太多導(dǎo)致過擬合 149
6.1.2 參數(shù)太少導(dǎo)致欠擬合 150
6.1.3 簡潔性與準確性之間的平衡 151
6.2 正則先驗 152
6.2.1 正則先驗和多層模型 153
6.3 衡量預(yù)測準確性 153
6.3.1 交叉驗證 154
6.3.2 信息量準則 155
6.3.3 用 PyMC3 計算信息量準則 158
6.3.4 解釋和使用信息校準 162
6.3.5 后驗預(yù)測檢查 163
6.4 貝葉斯因子 164
6.4.1 類比信息量準則 166
6.4.2 計算貝葉斯因子 166
6.5 貝葉斯因子與信息量準則 169
6.6 總結(jié) 171
6.7 深入閱讀 171
6.8 練習(xí) 171
第7章 混合模型 173
7.1 混合模型 173
7.1.1 如何構(gòu)建混合模型 174
7.1.2 邊緣高斯混合模型 180
7.1.3 混合模型與計數(shù)類型變量 181
7.1.4 魯棒邏輯回歸 187
7.2 基于模型的聚類 190
7.2.1 固定成分聚類 191
7.2.2 非固定成分聚類 191
7.3 連續(xù)混合模型 192
7.3.1 beta- 二項分布與負二項分布 192
7.3.2 t 分布 193
7.4 總結(jié) 193
7.5 深入閱讀 194
7.6 練習(xí) 194
第8章 高斯過程 195
8.1 非參統(tǒng)計 195
8.2 基于核函數(shù)的模型 196
8.2.1 高斯核函數(shù) 196
8.2.2 核線性回歸 197
8.2.3 過擬合與先驗 202
8.3 高斯過程 202
8.3.1 構(gòu)建協(xié)方差矩陣 203
8.3.2 根據(jù)高斯過程做預(yù)測 207
8.3.3 用 PyMC3 實現(xiàn)高斯過程 211
8.4 總結(jié) 215
8.5 深入閱讀 216
8.6 練習(xí) 216