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