利用Python調試機器學習模型

[美]阿裡·馬達尼 著 李慶良 譯

  • 出版商: 清華大學
  • 出版日期: 2024-08-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • ISBN: 7302668566
  • ISBN-13: 9787302668565
  • 相關分類: Machine Learning
  • 下單後立即進貨 (約4週~6週)

  • 利用Python調試機器學習模型-preview-1
  • 利用Python調試機器學習模型-preview-2
  • 利用Python調試機器學習模型-preview-3
利用Python調試機器學習模型-preview-1

商品描述

"《利用Python調試機器學習模型》詳細闡述了利用Python調試機器學習模型的基本解決方案,主要包括**代碼調試、機器學習生命周期、為實現負責任的人工智能而進行調試、檢測機器學習模型中的性能和效率問題、提高機器學習模型的性能、機器學習建模中的可解釋性和可理解性、減少偏差並實現公平性、使用測試驅動開發以控制風險、生產測試和調試、版本控制和可再現的機器學習建模、避免數據漂移和概念漂移、通過深度學習**機器學習調試、高級深度學習技術、機器學習**進展簡介、相關性與因果關系、機器學習中的安全性和隱私、人機迴圈機器學習等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書可作為高等院校電腦及相關專業的教材和教學參考用書,也可作為相關開發人員的自學用書和參考手冊。"

目錄大綱

目    錄

第1篇  機器學習建模的調試

第1章  超越代碼調試 3

1.1  技術要求 3

1.2  機器學習概覽 4

1.3  機器學習建模的類型 5

1.3.1  監督學習 6

1.3.2  無監督學習 6

1.3.3  自監督學習 7

1.3.4  半監督學習 7

1.3.5  強化學習 7

1.3.6  生成式機器學習 7

1.4  軟件開發中的調試 8

1.4.1  Python中的錯誤消息 9

1.4.2  調試技巧 11

1.4.3  調試器 13

1.4.4  高質量Python編程的最佳實踐 14

1.4.5  版本控制 16

1.4.6  Python之外的調試 17

1.5  用於建模的數據中的缺陷 18

1.5.1  數據格式和結構 18

1.5.2  數據數量和質量 19

1.5.3  數據偏差 19

1.6  以模型和預測為中心的調試 20

1.6.1  欠擬合和過擬合 20

1.6.2  模型測試和生產環境中的推理 21

1.6.3  用於改變全貌的數據或超參數 21

1.7  小結 22

1.8  思考題 22

1.9  參考文獻 22

第2章  機器學習生命周期 25

2.1  技術要求 25

2.2  在開始建模之前需要瞭解的事項 26

2.3  數據收集 27

2.4  數據選擇 28

2.5  數據探索 28

2.6  數據整理 29

2.6.1  結構化 29

2.6.2  充實和豐富 29

2.6.3  數據轉換 30

2.6.4  數據清洗 33

2.7  建模數據準備 38

2.7.1  特徵選擇和提取 38

2.7.2  設計評估和測試策略 40

2.8  模型訓練與評估 42

2.9  測試代碼和模型 44

2.10  模型部署與監控 45

2.11  小結 45

2.12  思考題 46

2.13  參考文獻 46

第3章  為實現負責任的人工智能而進行調試 47

3.1  技術要求 47

3.2  機器學習中的公正建模公平性 47

3.2.1  數據偏差 48

3.2.2  算法偏差 50

3.3  機器學習中的安全和隱私 50

3.3.1  數據隱私 50

3.3.2  數據隱私攻擊 51

3.3.3  數據中毒 51

3.3.4  對抗性攻擊 51

3.3.5  輸出完整性攻擊 52

3.3.6  系統操縱 53

3.3.7  安全且具備隱私保護功能的機器學習技術 53

3.4  機器學習建模的透明度 54

3.5  負責並接受建模檢查 55

3.6  數據和模型治理 57

3.7  小結 58

3.8  思考題 59

3.9  參考文獻 59

第2篇  改進機器學習模型

第4章  檢測機器學習模型中的性能和效率問題 63

4.1  技術要求 63

4.2  性能和誤差評估措施 64

4.2.1  分類 64

4.2.2  回歸 70

4.2.3  聚類 73

4.3  性能評估可視化 74

4.3.1  僅有匯總統計指標還不夠 75

4.3.2  可視化可能會產生誤導 75

4.3.3  不要一廂情願地解釋繪圖 76

4.4  偏差和方差診斷 77

4.5  模型驗證策略 80

4.6  誤差分析 83

4.7  超越性能 84

4.8  小結 86

4.9  思考題 86

4.10  參考文獻 87

第5章  提高機器學習模型的性能 89

5.1  技術要求 89

5.2  提高模型性能的選項 90

5.2.1  網格搜索 92

5.2.2  隨機搜索 93

5.2.3  貝葉斯搜索 94

5.2.4  連續減半 95

5.3  合成數據的生成 95

5.3.1  不平衡數據的過採樣 96

5.3.2  SMOTE技術原理 96

5.3.3  編寫繪圖函數 97

5.3.4  生成合成數據集 98

5.3.5  使用SMOTE方法 99

5.3.6  使用Borderline-SMOTE方法 100

5.3.7  使用ADASYN方法 101

5.3.8  其他基於SMOTE的方法 102

5.4  改進預訓練數據處理 103

5.4.1  異常檢測和離群值去除 104

5.4.2  善加利用低質量或相關性較低的數據 107

5.5  通過正則化方法提高模型的泛化能力 109

5.5.1  正則化方法的原理 109

5.5.2  編寫繪圖函數 111

5.5.3  評估Lasso模型 112

5.5.4  評估嶺模型 113

5.5.5  評估Elastic-Net 113

5.5.6  評估SVM分類模型 114

5.6  小結 115

5.7  思考題 115

5.8  參考文獻 115

第6章  機器學習建模中的可解釋性和可理解性 119

6.1  技術要求 119

6.2  可理解性機器學習與黑盒機器學習 119

6.2.1  可理解的機器學習模型 120

6.2.2  復雜模型的可解釋性 121

6.3  機器學習中的可解釋性方法 122

6.4  局部可解釋性技術 123

6.4.1  特徵重要性 123

6.4.2  反事實解釋 125

6.4.3  基於樣本的可解釋性 125

6.4.4  基於規則的可解釋性 125

6.4.5  顯著圖 126

6.5  全局可解釋性技術 126

6.5.1  收集局部解釋 126

6.5.2  知識蒸餾 127

6.5.3  反事實總結 127

6.6  在Python中實踐機器學習的可解釋性 127

6.6.1  使用SHAP進行解釋 128

6.6.2  使用LIME進行解釋 134

6.6.3  使用多樣化反事實解釋(DiCE)的反事實生成 138

6.7  僅有可解釋性還不夠 140

6.8  小結 140

6.9  思考題 141

6.10  參考文獻 141

第7章  減少偏差並實現公平性 143

7.1  技術要求 143

7.2  機器學習建模中的公平性 144

7.2.1  人口平等 144

7.2.2  概率均等 145

7.2.3  機會平等 145

7.2.4  敏感變量的代理 146

7.3  偏差的來源 146

7.3.1  數據生成和收集中引入的偏差 146

7.3.2  模型訓練和測試中的偏差 149

7.3.3  生產環境中的偏差 150

7.4  使用可解釋性技術 150

7.4.1  查看整體數據集的SHAP匯總圖 150

7.4.2  找到要分析偏差的特徵 151

7.4.3  進行特徵之間的相關性分析 151

7.4.4  對特徵進行可解釋性分析 152

7.5  Python中的公平性評估和改進 154

7.5.1  提供了機器學習公平性相關功能的Python庫 154

7.5.2  計算敏感特徵的差異影響比 155

7.5.3  使用拒絕選項分類 156

7.6  小結 158

7.7  思考題 158

7.8  參考文獻 159

第3篇  低錯誤的機器學習開發與部署

第8章  使用測試驅動開發以控制風險 163

8.1  技術要求 163

8.2  機器學習建模的測試驅動開發 164

8.2.1  單元測試 164

8.2.2  Pytest的基本操作步驟 164

8.2.3  確定要為其設計單元測試的組件 165

8.2.4  定義單元測試函數 166

8.2.5  運行Pytest 166

8.2.6  Pytest固定裝置 168

8.3  機器學習差異測試 169

8.4  跟蹤機器學習實驗 171

8.4.1  選擇機器學習實驗跟蹤工具的重要註意事項 171

8.4.2  常用的機器學習實驗跟蹤工具 172

8.4.3  使用MLflow Tracking 172

8.5  小結 175

8.6  思考題 175

8.7  參考文獻 176

第9章  生產測試和調試 177

9.1  技術要求 177

9.2  基礎設施測試 178

9.2.1  基礎設施即代碼工具 178

9.2.2  基礎設施測試工具 179

9.2.3  使用Pytest進行基礎設施測試 180

9.3  機器學習管道的集成測試 180

9.3.1  集成測試的主要內容 181

9.3.2  集成測試的流行工具 181

9.3.3  使用Pytest進行集成測試 182

9.3.4  使用requests和Pytest進行集成測試 183

9.4  監控和驗證實時性能 184

9.4.1  通過監控瞭解部署前模型和生產環境中模型之間的差異 184

9.4.2  可用於監控模型的Python工具 185

9.4.3  數據漂移評估方法 186

9.5  模型斷言 186

9.5.1  模型斷言的用途 186

9.5.2  在Python中使用模型斷言 187

9.6  小結 188

9.7  思考題 189

9.8  參考文獻 189

第10章  版本控制和可再現的機器學習建模 191

10.1  技術要求 191

10.2  機器學習中的可再現性 192

10.3  數據版本控制 193

10.3.1  常用的數據版本控制工具 193

10.3.2  數據版本控制示例 194

10.4  模型版本控制 195

10.4.1  理解模型版本控制的必要性 195

10.4.2  執行模型版本控制的要點 196

10.5  小結 197

10.6  思考題 197

10.7  參考文獻 197

第11章  避免數據漂移和概念漂移 199

11.1  技術要求 199

11.2  避免模型漂移 200

11.2.1  避免數據漂移 200

11.2.2  解決概念漂移問題 202

11.3  檢測漂移 202

11.3.1  使用alibi_detect進行漂移檢測練習 202

11.3.2  使用evidently進行漂移檢測練習 205

11.4  小結 208

11.5  思考題 208

11.6  參考文獻 208

第4篇  深度學習建模

第12章  通過深度學習超越機器學習調試 211

12.1  技術要求 211

12.2  人工神經網絡簡介 211

12.2.1  全連接神經網絡 212

12.2.2  優化算法 214

12.3  神經網絡建模框架 216

12.3.1  用於深度學習建模的PyTorch 216

12.3.2  訓練模型 219

12.3.3  深度學習的超參數調優 220

12.3.4  PyTorch中的模型可解釋性 221

12.3.5  PyTorch開發的深度學習模型的公平性 221

12.3.6  PyTorch Lightning 222

12.4  小結 222

12.5  思考題 223

12.6  參考文獻 223

第13章  高級深度學習技術 225

13.1  技術要求 225

13.2  神經網絡的類型 226

13.2.1  基於數據類型的分類 226

13.2.2  不同數據類型示例 227

13.2.3  將不同類型數據重新格式化為表格數據的一些挑戰 227

13.3  用於圖像形狀數據的捲積神經網絡 228

13.3.1  捲積的概念 228

13.3.2  捲積神經網絡的應用 229

13.3.3  捲積神經網絡的常用模型 230

13.3.4  性能評估 231

13.3.5  使用PyTorch進行CNN建模 232

13.3.6  捲積神經網絡的圖像數據轉換和增強 234

13.3.7  使用預先訓練的模型 235

13.4  用於語言建模的Transformer 236

13.4.1  標記化 238

13.4.2  語言嵌入 241

13.4.3  使用預訓練模型進行語言建模 241

13.5  使用深度神經網絡對圖進行建模 243

13.5.1  認識圖 244

13.5.2  圖神經網絡 245

13.5.3  使用PyTorch Geometric構建圖神經網絡 246

13.6  小結 250

13.7  思考題 250

13.8  參考文獻 251

第14章  機器學習最新進展簡介 255

14.1  技術要求 255

14.2  生成式建模 255

14.2.1  ChatGPT和其他生成式AI的成功故事 256

14.2.2  生成式深度學習技術 257

14.2.3  基於文本的生成式模型的提示工程 258

14.2.4  使用PyTorch進行生成式建模 260

14.3  強化學習 262

14.3.1  基於人類反饋的強化學習 263

14.3.2  使用PyTorch設計RLHF 263

14.4  自監督學習 265

14.4.1  常見自監督學習技術 266

14.4.2  使用PyTorch進行自監督學習 266

14.5  小結 269

14.6  思考題 269

14.7  參考文獻 269

第5篇  模型調試的高級主題

第15章  相關性與因果關系 275

15.1  技術要求 275

15.2  作為機器學習模型一部分的相關性 276

15.3  因果建模可降低風險並提高性能 276

15.4  評估機器學習模型中的因果關系 278

15.4.1  識別因果特徵的方法 278

15.4.2  因果推理 279

15.4.3  貝葉斯網絡 281

15.5  使用Python進行因果建模 282

15.5.1  使用dowhy進行因果效應估計 282

15.5.2  使用bnlearn通過貝葉斯網絡進行因果推理 284

15.6  小結 286

15.7  思考題 287

15.8  參考文獻 287

第16章  機器學習中的安全性和隱私 289

16.1  技術要求 289

16.2  加密技術及其在機器學習中的應用 290

16.2.1  常見加密技術 290

16.2.2  在Python中實現AES加密 290

16.3  同態加密 292

16.4  差分隱私 293

16.5  聯邦學習 295

16.6  小結 297

16.7  思考題 297

16.8  參考文獻 297

第17章  人機迴圈機器學習 299

17.1  機器學習生命周期中的人類 299

17.1.1  主動和被動人機迴圈 300

17.1.2  專家反饋收集 300

17.2  人機迴圈建模 301

17.3  小結 302

17.4  思考題 303

17.5  參考文獻 303

附錄A  思考題答案 305

第1章  超越代碼調試 305

第2章  機器學習生命周期 307

第3章  為實現負責任的人工智能而進行調試 307

第4章  檢測機器學習模型中的性能和效率問題 308

第5章  提高機器學習模型的性能 309

第6章  機器學習建模中的可解釋性和可理解性 311

第7章  減少偏差並實現公平性 312

第8章  使用測試驅動開發以控制風險 313

第9章  生產測試和調試 313

第10章  版本控制和可再現的機器學習建模 315

第11章  避免數據漂移和概念漂移 315

第12章  通過深度學習超越機器學習調試 316

第13章  高級深度學習技術 316

第14章  機器學習最新進展簡介 317

第15章  相關性與因果關系 318

第16章  機器學習中的安全性和隱私 318

第17章  人機迴圈機器學習 319