遺傳算法與機器學習編程 Genetic Algorithms and Machine Learning for Programmers: Create AI Models and Evolve Solutions

Frances Buontempo

買這商品的人也買了...

商品描述

自動駕駛汽車、自然語言識別、內容推薦引擎的實現都離不開人工智能和機器學習算法。
機器學習算法只有在解決具體問題時才能體現價值。
本書以解決各種趣味問題為目標,教讀者用Python、JavaScript、
C 編寫機器學習算法,內容深入淺出,兼具實用性與大局觀。
讀者將學習編寫遺傳算法、啟發式算法、爬山算法、模擬退火算法,運用蒙特·卡洛模擬、點格自動機、適應函數解決問題。
本書尤其適合對人工智能和機器學習感興趣的程序員進階學習。

作者簡介

Frances Buontempo
博士多年來一直從事數據挖掘方面的研究工作,
她有近三十年的軟件開發經驗,同時還擔任ACCU網站的Overload雜誌編輯。
Frances Buontempo is the editor of ACCU's Overload magazine 
(https://accu.org/index.php/journal/?overload_by_cover). 
She has published articles and given talks centered on technology and machine learning. 
With a PhD in data mining, she has been programming professionally since the 1990s. 
During her career as a programmer, she has championed unit testing, mentored newer developers, 
deleted quite a bit of code and fixed a variety of bugs.

目錄大綱

第1 章逃出紙口袋 1
1.1 開始 3
1.1.1 逃出紙口袋 4
1.2 目標:尋找出路 5
1.3 幫助烏龜逃脫 6
1.3.1 烏龜和紙口袋 7
1.4 拯救烏龜 8
1.4.1 正方形 9
1.4.2 角螺旋 10
1.4.3 該逃脫了 11
1.5 算法有效嗎 12
1.6 拓展學習 14
 
第2 章尋找紙口袋 17
2.1 從數據中學習 18
2.1.1 劃分數據 21
2.2 生成決策樹的方法 22
2.2.1 選取最佳特徵 22
2.3 找到紙口袋 28
2.3.1 尋找分割點 29
2.3.2 構建決策樹 30
2.3.3 數據分類 31
2.3.4 將決策樹轉為規則集 32
2.4 算法有效嗎 33
2.4.1 如何剪枝36
2.5 拓展學習38
 
第3 章遺傳算法 39
3.1 發射砲彈41
3.2 解的生成方法44
3.2.1 算法的初始化 44
3.2.2 算法的迭代45
3.2.3 如何讓解變得更好45
3.2.4 最終決策46
3.3 發射砲彈47
3.3.1 隨機初始化48
3.3.2 選擇過程48
3.3.3 交叉 53
3.3.4 突變 54
3.4 算法有效嗎56
3.4.1 畫圖 56
3.4.2 記錄 60
3.4.3 突變測試60
3.4.4 遺傳算法的變體 62
3.5 拓展學習63
 
第4 章粒子群算法65
4.1 控製粒子群67
4.1.1 移動單個粒子 67
4.1.2 移動多個粒子 71
4.1.3 粒子群75
4.2 粒子群的生成76
4.2.1 跟隨鄰近粒子 77
4.2.2 跟隨最好位置 78
4.3 創建粒子群80
4.3.1 跟隨鄰近粒子 80
4.3.2 跟隨最好位置 83
4.4 算法有效嗎 88
4.5 拓展學習 90
 
第5 章尋找路線 91
5.1 釋放信息素 92
5.1.1 使用信息素 94
5.2 怎樣生成路線 96
5.3 讓螞蟻行動起來 98
5.3.1 隨機初始化 98
5.3.2 畫路線 102
5.3.3 迭代優化路線 103
5.4 算法有效嗎 107
5.4.1 從同一點出發 107
5.4.2 隨機從不同點出發109
5.4.3 α和β的選擇 109
5.4.4 其他參數 111
5.5 拓展學習 112
 
第6 章運用隨機模型113
6.1 讓粒子隨機運動 114
6.1.1 蒙特卡洛模擬 114
6.1.2 布朗運動 117
6.1.3 幾何布朗運動 122
6.1.4 跳躍擴散 123
6.2 如何產生擴散 125
6.2.1 小隨機步長 125
6.2.2 用C 畫圖 126
6.3 讓粒子擴散開 127
6.3.1 布朗運動 128
6.3.2 股票價格 133
6.4 算法有效嗎 137
6.4.1 基於特性的測試 139
6.5 拓展學習143
 
第7 章蜂群算法 145
7.1 養蜂 146
7.1.1 讓蜜蜂行動起來 146
7.1.2 蜜蜂的分工147
7.1.3 算法總覽 149
7.2 算法分析150
7.2.1 算法細節 150
7.2.2 搖擺舞152
7.3 讓蜜蜂飛起來 152
7.3.1 蜂群算法的實現 153
7.3.2 蜂群算法的可視化161
7.4 算法有效嗎164
7.5 拓展學習166
 
第8 章元胞自動機167
8.1 讓元胞活起來 169
8.2 創造人工生命 172
8.2.1 算法細節 173
8.3 實現元胞自動機 175
8.4 算法有效嗎182
8.5 拓展學習183
 
第9 章遺傳算法與元胞自動機185
9.1 找到最好的配置 186
9.2 遺傳算法在元胞自動機上的工作方式190
9.3 找到最優初始排列193
9.3.1 交叉 197
9.3.2 突變 201
9.3.3 運行遺傳算法 202
9.3.4 初等元胞自動機 204
9.3.5 隨機規則 206
9.4 算法有效嗎 207
9.4.1 初等元胞自動機 209
9.4.2 隨機規則 211
9.5 拓展學習 212
 
第10 章找到最優解215
10.1 移動烏龜 216
10.2 烏龜怎麼走 217
10.2.1 爬山法 218
10.2.2 模擬退火算法 220
10.3 尋找口袋底部 222
10.3.1 用函數表示口袋形狀 223
10.3.2 爬山法 224
10.3.3 模擬退火算法 225
10.4 算法有效嗎 228
10.4.1 爬山法 229
10.4.2 模擬退火算法 231
10.5 更高維度的情況 233
10.6 拓展學習 237
參考文獻 239