現(xiàn)代決策樹模型及其編程實踐:從傳統(tǒng)決策樹到深度決策樹
定 價:129 元
叢書名:智能科學(xué)與技術(shù)叢書
- 作者:黃智瀕
- 出版時間:2022/7/1
- ISBN:9787111706366
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP18
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
決策樹是數(shù)據(jù)分析中廣泛使用的機(jī)器學(xué)習(xí)模型,其模型簡單、算法快速且具有可解釋性。但隨著大數(shù)據(jù)的涌現(xiàn),將決策樹真正應(yīng)用到實踐中還面臨諸多困難。本書正是為解決這一痛點而作,旨在幫助讀者系統(tǒng)且全面地了解決策樹,并成功地將其用于工程實踐。
生活中,我們處處在做決策,這類決策也許是快速而直接的。工作中,我們可能要做出一些重大而復(fù)雜的決策,這類決策往往需要我們細(xì)致地收集各種影響要素,量化分析其權(quán)重,最終得到符合意圖的決策結(jié)果。正是這種認(rèn)知行為意識使得決策分析和基于樹的決策工具在1500年前就開始使用了,長期的樹形分析實踐為后來決策樹方法的誕生提供了豐富的養(yǎng)分,F(xiàn)代決策樹算法的演化是人工智能深入發(fā)展過程中的重要組成部分。由于優(yōu)秀的可解釋性、模型的簡單性、算法的快速性,使得決策樹算法受到了越來越廣泛的關(guān)注,正在成為數(shù)據(jù)科學(xué)和智能科學(xué)領(lǐng)域技術(shù)人員的必備工具。我相信決策樹還將深入影響未來人工智能模式的發(fā)展。
在過去的三年中,我有幸參與了一個以決策樹作為主要工具的重點項目。我們通過深入學(xué)習(xí)、探索和研究各類決策樹模型,最終實現(xiàn)了具有良好可解釋性、能有效處理超大規(guī)模數(shù)據(jù)且能快速實現(xiàn)預(yù)測評估的機(jī)器學(xué)習(xí)模型。本書是我們在項目實踐過程中的積累與總結(jié)。
本書從決策分析及其應(yīng)用引入主題,首先介紹決策樹與人工智能的關(guān)系(第1章),然后介紹經(jīng)典的決策樹算法(第2章),通過對CART、ID3和C4.5等算法的介紹,幫助讀者對決策樹形成明確且清晰的概念。之后結(jié)合分類問題和回歸問題進(jìn)行實踐,特別是對回歸問題進(jìn)行了深入討論回歸模型正成為現(xiàn)代決策樹模型與深度學(xué)習(xí)模型的有效結(jié)合點。第3章深入講解經(jīng)典的決策樹剪枝方法,特別是代價復(fù)雜度剪枝、錯誤率降低剪枝、悲觀錯誤剪枝和最小錯誤剪枝,通過示例和編程實踐進(jìn)行詳細(xì)描述。第4章介紹隨機(jī)森林的基本原理,結(jié)合示例和編程實踐詳細(xì)描述了隨機(jī)森林的構(gòu)造過程,并對套袋法進(jìn)行分析。第5章介紹當(dāng)前較為熱門的集成學(xué)習(xí)方法(提升法、梯度提升法、堆疊法),通過示例和編程實踐詳細(xì)講解AdaBoost和梯度提升法。第6章著重介紹并行決策樹的幾種主流算法,包括XGBoost、LightGBM和CatBoost,并簡要介紹了較新的NGBoost算法。該章首先對各算法的核心原理做了分析,然后從工程化角度介紹其并行化加速方法,同時還提供了一些應(yīng)用實例。第7章介紹常見的幾類蟻群算法以及在此基礎(chǔ)上的蟻群決策樹算法和自適應(yīng)蟻群決策森林。群智模型作為人工智能2.0時代的典型智能模型,其群體智能的全局搜索能力與決策樹的可解釋性的有效結(jié)合,也許會帶來預(yù)料之外的成功。第8章介紹深度決策樹算法,包括深度森林、深度神經(jīng)決策樹、自適應(yīng)神經(jīng)決策樹、神經(jīng)支持決策樹和深度神經(jīng)決策森林,并借助PyTorch等工具對程序和示例進(jìn)行分析。
本書圍繞決策樹算法和現(xiàn)代決策樹模型,通過大量的示例和完整的代碼實現(xiàn)詳細(xì)講解決策樹的精髓,既涵蓋必要的公式推導(dǎo),又考慮具體的應(yīng)用需求。本書的所有代碼均可免費獲取,有需要的讀者請訪問華章網(wǎng)站(www.hzbook.com)搜索本書并下載。通過閱讀本書,希望讀者能對決策樹有系統(tǒng)和全面的了解,并能夠?qū)⑵淇焖賾?yīng)用在工作和生活實踐中。如果這本書能給你帶來開卷有益的感受,那將是我最大的欣慰了。
最后,感謝家人和朋友的支持和幫助。感謝在本書撰寫過程中做出貢獻(xiàn)的人,特別是常霄、曹凌婧、劉小萌、洪藝賓、張瑞濤、劉濤、傅廣濤、董丹陽、法天昊、靳夢凡、汪鑫等,常霄負(fù)責(zé)全書代碼的編寫和整理工作。還要感謝機(jī)械工業(yè)出版社的各位編輯,以及北京郵電大學(xué)計算機(jī)學(xué)院(國家示范性軟件學(xué)院)的大力支持。
黃智瀕
于北京郵電大學(xué)目錄
贊譽
推薦序一
推薦序二
推薦序三
前言
第1章決策樹與人工智能1
1.1決策與智能1
1.2決策樹算法的起源2
1.3決策樹的核心術(shù)語4
1.4決策樹的可解釋性5
1.5作為決策分析工具的決策樹7
1.5.1決策分析8
1.5.2基于決策分析流程的決策樹9
1.6作為機(jī)器學(xué)習(xí)算法的決策樹15
1.6.1機(jī)器學(xué)習(xí)算法的類型15
1.6.2基于數(shù)據(jù)的決策樹18
1.6.3決策樹算法面臨的基本問題24
1.6.4基于規(guī)則的機(jī)器學(xué)習(xí)27
1.7作為特征學(xué)習(xí)與決策融合的決策樹30
1.8參考文獻(xiàn)31
第2章經(jīng)典決策樹算法33
2.1經(jīng)典決策樹應(yīng)用的一般流程33
2.1.1缺失值的處理33
2.1.2連續(xù)數(shù)值屬性的離散化處理34
2.2CART算法34
2.2.1基尼不純度、基尼增益與基尼指數(shù)34
2.2.2CART分類決策樹的原理38
2.2.3CART分類決策樹的編程實踐43
2.2.4回歸問題與回歸算法55
2.2.5CART回歸決策樹的特征和分割點選擇準(zhǔn)則65
2.2.6CART回歸決策樹的原理66
2.2.7CART回歸決策樹的編程實踐70
2.3ID3算法75
2.3.1信息熵與信息增益75
2.3.2ID3算法示例78
2.3.3ID3算法的編程實踐84
2.4C4.5算法87
2.4.1信息增益率88
2.4.2連續(xù)屬性的處理88
2.4.3缺失值的處理88
2.4.4基于C4.5算法處理連續(xù)屬性生成分類決策樹的示例91
2.4.5C4.5算法的后續(xù)改進(jìn)C5.0算法96
2.5決策樹的評估98
2.6決策樹的5種可視化方法100
2.7小結(jié)107
2.8參考文獻(xiàn)107
第3章決策樹的剪枝109
3.1代價復(fù)雜度剪枝110
3.1.1CCP算法的基本原理110
3.1.2CCP算法的編程實踐113
3.1.3基于sklearn的CCP示例121
3.2錯誤率降低剪枝127
3.2.1REP算法的基本原理127
3.2.2REP算法的編程實踐128
3.3悲觀錯誤剪枝133
3.3.1PEP算法的基本原理133
3.3.2PEP算法的編程實踐135
3.4最小錯誤剪枝139
3.4.1MEP算法的基本原理139
3.4.2MEP算法的編程實踐140
3.5其他決策樹剪枝算法簡介145
3.6小結(jié)147
3.7參考文獻(xiàn)147
第4章隨機(jī)森林149
4.1隨機(jī)森林的基本原理149
4.1.1構(gòu)造隨機(jī)森林的步驟150
4.1.2隨機(jī)森林的簡單示例151
4.1.3基于sklearn的隨機(jī)森林編程示例152
4.1.4選擇最優(yōu)的隨機(jī)特征屬性數(shù)量153
4.2套袋法156
4.2.1套袋法的算法流程157
4.2.2套袋法的偏差和方差157
4.2.3套袋法的優(yōu)缺點159
4.3隨機(jī)森林的參數(shù)設(shè)置與調(diào)優(yōu)159
4.3.1sklearn隨機(jī)森林的參數(shù)159
4.3.2調(diào)參示例161
4.3.3OOB錯誤率與交叉驗證166
4.4隨機(jī)森林的優(yōu)缺點174
4.5使用隨機(jī)森林進(jìn)行特征屬性的重要性區(qū)分的示例175
4.5.1基于基尼指數(shù)的特征屬性重要性評估175
4.5.2基于袋外數(shù)據(jù)錯誤率的特征屬性重要性評估177
4.6使用隨機(jī)森林進(jìn)行無監(jiān)督聚類的示例179
4.7使用隨機(jī)森林進(jìn)行回歸分析的示例182
4.8隨機(jī)森林與核方法的結(jié)合184
4.9小結(jié)186
4.10參考文獻(xiàn)186
第5章集成學(xué)習(xí)方法188
5.1提升法188
5.1.1AdaBoost算法原理189
5.1.2AdaBoost算法實現(xiàn)199
5.1.3AdaBoost算法的編程實踐基于sklearn解決分類問題203
5.1.4AdaBoost算法的編程實踐基于sklearn解決回歸問題205
5.1.5提升法的分類、優(yōu)點和挑戰(zhàn)207
5.2梯度提升法208
5.2.1梯度提升法的原理和示例208
5.2.2梯度提升決策樹211
5.2.3梯度提升分類決策樹213
5.2.4梯度提升回歸決策樹223
5.2.5隨機(jī)梯度提升樹227
5.2.6基于梯度提升法的機(jī)器學(xué)習(xí)庫228
5.3堆疊法233
5.3.1簡單的二階段堆疊算法234
5.3.2基于K折交叉驗證的二階段堆疊法237
5.3.3基于sklearn的K折交叉驗證的二階段堆疊法的編程實踐238
5.3.4多階段堆疊模型247
5.4套袋法、提升法、堆疊法的比較250
5.5小結(jié)252
5.6參考文獻(xiàn)253
第6章并行決策樹256
6.1隨機(jī)森林的并行化256
6.2XGBoost基礎(chǔ)259
6.2.1XGBoost核心原理260
6.2.2XGBoost系統(tǒng)設(shè)計及其并行化加速270
6.2.3XGBoost編程基礎(chǔ)272
6.2.4XGBoost回歸問題編程275
6.2.5XGBoost分類問題編程277
6.2.6XGBoost隨機(jī)森林編程278
6.2.7XGBoost特征篩選編程281
6.2.8XGBoost與傳統(tǒng)提升樹的比較283
6.2.9XGBoost的缺點284
6.3LightGBM基礎(chǔ)284
6.3.1LightGBM核心原理285
6.3.2LightGBM系統(tǒng)設(shè)計及其并行化加速291
6.3.3LigthGBM編程基礎(chǔ)294
6.3.4LightGBM與sklearn結(jié)合的示例300
6.3.5LightGBM回歸問題編程302
6.3.6LightGBM分類問題編程303
6.3.7LightGBM的優(yōu)缺點305
6.4CatBoost基礎(chǔ)306
6.4.1CatBoost核心原理306
6.4.2CatBoost系統(tǒng)設(shè)計及其并行化加速313
6.4.3CatBoost編程基礎(chǔ)313
6.4.4CatBoost分類問題編程(不帶分類特征屬性)317
6.4.5CatBoost回歸問題編程(不帶分類特征屬性)319
6.4.6CatBoost回歸問題編程(帶分類特征屬性)321
6.4.7CatBoost的優(yōu)缺點323
6.4.8XGBoost、LightGBM、CatBoost的比較324
6.5NGBoost簡介325
6.6小結(jié)326
6.7參考文獻(xiàn)326
第7章蟻群決策樹329
7.1蟻群元啟發(fā)式算法329
7.1.1典型蟻群算法330
7.1.2MMAS算法331
7.1.3ACS算法332
7.2基于蟻群的分類規(guī)則提取333
7.2.1Ant-Miner規(guī)則提取方法334
7.2.2Ant-Miner算法實現(xiàn)339
7.2.3Ant-Miner算法的早期變種345
7.2.4MYRA開源實現(xiàn)349
7.2.5Ant-MinerMA G算法350
7.2.6AMclr算法353
7.3蟻群