本書以案例驅動的方式講解機器學習算法的知識點,并以Python語言作為基礎開發(fā)語言實現算法,包括目前機器學習主流算法的原理、算法流程圖、算法的詳細設計步驟、算法實例、算法應用、算法的改進與優(yōu)化等環(huán)節(jié)。
全書共分 17 章,前兩章介紹機器學習與 Python 語言的相關基礎知識,后面各章以案例的方式分別介紹線性回歸算法、邏輯回歸算法、K *近鄰算法、PCA 降維算法、k-means算法、支持向量機算法、AdaBoost算法、決策樹算法、高斯混合模型算法、隨機森林算法、樸素貝葉斯算法、隱馬爾可夫模型算法、BP 神經網絡算法、卷積神經網絡算法、遞歸神經網絡算法。
本書適合作為高等院校人工智能、大數據、計算機科學、軟件工程等相關專業(yè)本科生和研究生有關課程的教材,也適用于各種計算機編程、人工智能學習認證體系,還可供廣大人工智能領域技術人員參考。
前 言
2018年12月,DeepMind設計的基于Transformer神經網絡和深度學習的人工智能程序 AlphaStar,在《星際爭霸2》游戲中以5﹕0的成績分別戰(zhàn)勝兩位職業(yè)選手,這是繼AlphaGo 打敗世界圍棋冠軍李世石以來,機器學習領域又一次震驚世界的壯舉,為機器學習的發(fā)展歷程又增添了一抹濃厚的色彩。
機器學習(Machine Learning,ML)是一門多領域交叉學科,涉及概率論、統(tǒng)計學、逼近論、凸分析、算法復雜度理論等多學科。它專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,或者重新組織已有的知識結構使之不斷改善自身的性能。它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域。
Python語言憑借語法簡單、優(yōu)雅、面向對象、可擴展性等優(yōu)點,一經面世就受到廣大開發(fā)者的追捧,這使得 Python 語言不僅提供了豐富的數據結構,還具有諸如 NumPy、SciPy、Matplotlib 等豐富的數據科學計算庫,為機器學習的開發(fā)帶來了極大的便利。因此,本書用 Python語言來編寫機器學習算法。
書中對每一種機器學習算法都按照下列幾個方面進行總結和描述。第一,簡要介紹算法的原理,通過通俗易懂的語言描述和示例使讀者對算法有一個大致的了解;第二,給出標準的算法流程圖;第三,具體介紹算法的詳細設計步驟,使讀者對算法的理解更為深入;第四,為了加深讀者對算法的熟練程度,針對每個算法舉出示例;第五,將每個算法回歸到日常生活的應用中,以提高讀者對算法的靈活掌握程度;第六,結合當前的最新研究成果,對經典的機器學習算法提出改進與優(yōu)化建議,為讀者進一步研究算法提供新思路;第七,每一章的最后都對全章的內容進行總結,幫讀者梳理整章知識;第八,課后習題的設置旨在幫助讀者鞏固算法的學習。
全書共分17章,第1和2章介紹機器學習與 Python 語言的相關概念與基礎知識,第3~17章分別介紹了線性回歸算法、邏輯回歸算法、K最近鄰算法、PCA 降維算法、k-means算法、支持向量機算法、AdaBoost算法、決策樹算法、高斯混合模型算法、隨機森林算法、樸素貝葉斯算法、隱馬爾可夫模型算法、BP 神經網絡算法、卷積神經網絡算法、遞歸神經網絡算法。
本書由多人合作完成,其中第1~4章由太原理工大學趙涓涓編寫,第5~7章由太原理工大學強彥編寫,第8和9章由太原理工大學王華編寫,第10和11章由太原科技大學蔡星娟編寫,第12和13章由太原理工大學降愛蓮編寫,第14和15章由太原理工大學田玉玲編寫,第16和17章由太原理工大學馬建芬編寫。全書由趙涓涓審閱。
在本書撰寫過程中,車征、王磐、王佳文、史國華、魏淳武、周凱、王夢南、王艷飛、吳俊霞、武儀佳、張振慶等項目組成員做了大量的資料準備、文檔整理和代碼調試工作,在此一并表示衷心的感謝!
由于作者水平有限,不當之處在所難免,懇請讀者及同仁賜教指正。
編 者
2019年5月
前言
第1章 機器學習基礎 1
1.1 引論 1
1.2 何謂機器學習 2
1.2.1 概述 2
1.2.2 引例 2
1.3 機器學習中的常用算法 4
1.3.1 按照學習方式劃分 4
1.3.2 按照算法相似性劃分 7
1.4 本章小結 14
1.5 本章習題 14
第2章 Python與數據科學 15
2.1 Python概述 15
2.2 Python與數據科學的關系 16
2.3 Python中常用的第三方庫 16
2.3.1 NumPy 16
2.3.2 SciPy 17
2.3.3 Pandas 17
2.3.4 Matplotlib 18
2.3.5 Scikit-learn 18
2.4 編譯環(huán)境 18
2.4.1 Anaconda 19
2.4.2 Jupyter Notebook 21
2.5 本章小結 23
2.6 本章習題 24
第3章 線性回歸算法 25
3.1 算法概述 25
3.2 算法流程 25
3.3 算法步驟 26
3.4 算法實例 30
3.5 算法應用 32
3.6 算法的改進與優(yōu)化 34
3.7 本章小結 34
3.8 本章習題 34
第4章 邏輯回歸算法 37
4.1 算法概述 37
4.2 算法流程 38
4.3 算法步驟 38
4.4 算法實例 40
4.5 算法應用 45
4.6 算法的改進與優(yōu)化 49
4.7 本章小結 49
4.8 本章習題 49
第5章 K最近鄰算法 51
5.1 算法概述 51
5.2 算法流程 52
5.3 算法步驟 52
5.4 算法實例 53
5.5 算法應用 54
5.6 算法的改進與優(yōu)化 57
5.7 本章小結 58
5.8 本章習題 58
第6章 PCA降維算法 59
6.1 算法概述 59
6.2 算法流程 60
6.3 算法步驟 60
6.3.1 內積與投影 60
6.3.2 方差 62
6.3.3 協方差 62
6.3.4 協方差矩陣 63
6.3.5 協方差矩陣對角化 63
6.4 算法實例 65
6.5 算法應用 67
6.6 算法的改進與優(yōu)化 68
6.7 本章小結 68
6.8 本章習題 69
第7章 k-means算法 70
7.1 算法概述 70
7.2 算法流程 70
7.3 算法步驟 71
7.3.1 距離度量 71
7.3.2 算法核心思想 72
7.3.3 初始聚類中心的選擇 73
7.3.4 簇類個數k的調整 73
7.3.5 算法特點 74
7.4 算法實例 75
7.5 算法應用 77
7.6 算法的改進與優(yōu)化 81
7.7 本章小結 81
7.8 本章習題 82
第8章 支持向量機算法 84
8.1 算法概述 84
8.2 算法流程 85
8.2.1 線性可分支持向量機 85
8.2.2 非線性支持向量機 85
8.3 算法步驟 85
8.3.1 線性分類 85
8.3.2 函數間隔與幾何間隔 87
8.3.3 對偶方法求解 88
8.3.4 非線性支持向量機與核函數 90
8.4 算法實例 93
8.5 算法應用 95
8.6 算法的改進與優(yōu)化 100
8.7 本章小結 101
8.8 本章習題 101
第9章 AdaBoost算法 102
9.1 算法概述 102
9.2 算法流程 102
9.3 算法步驟 103
9.4 算法實例 105
9.5 算法應用 106
9.6 算法的改進與優(yōu)化 109
9.7 本章小結 110
9.8 本章習題 110
第10章 決策樹算法 112
10.1 算法概述 112
10.2 算法流程 113
10.3 算法步驟 113
10.3.1 兩個重要概念 113
10.3.2 實現步驟 115
10.4 算法實例 115
10.5 算法應用 118
10.6 算法的改進與優(yōu)化 119
10.7 本章小結 120
10.8 本章習題 120
第11章 高斯混合模型算法 121
11.1 算法概述 121
11.2 算法流程 121
11.3 算法步驟 122
11.3.1 構建高斯混合模型 122
11.3.2 EM算法估計模型參數 123
11.4 算法實例 125
11.5 算法應用 127
11.6 算法的改進與優(yōu)化 129
11.7 本章小結 130
11.8 本章習題 130
第12章 隨機森林算法 132
12.1 算法概述 132
12.2 算法流程 133
12.3 算法步驟 134
12.3.1 構建數據集 134
12.3.2 基于數據集構建分類器 134
12.3.3 投票組合得到最終結果并分析 135
12.4 算法實例 136
12.5 算法應用 140
12.6 算法的改進與優(yōu)化 142
12.7 本章小結 143
12.8 本章習題 143
第13章 樸素貝葉斯算法 145
13.1 算法概述 145
13.2 算法流程 145
13.3 算法步驟 146
13.4 算法實例 148
13.5 算法應用 149
13.6 算法的改進與優(yōu)化 151
13.7 本章小結 152
13.8 本章習題 152
第14章 隱馬爾可夫模型算法 154
14.1 算法概述 154
14.2 算法流程 154
14.3 算法步驟 155
14.4 算法實例 156
14.5 算法應用 159
14.6 算法的改進與優(yōu)化 165
14.7 本章小結 166
14.8 本章習題 166
第15章 BP神經網絡算法 167
15.1 算法概述 167
15.2 算法流程 167
15.3 算法步驟 168
15.4 算法實例 170
15.5 算法應用 174
15.6 算法的改進與優(yōu)化 176
15.7 本章小結 177
15.8 本章習題 177
第16章 卷積神經網絡算法 179
16.1 算法概述 179
16.2 算法流程 179
16.3 算法步驟 180
16.3.1 向前傳播階段 181
16.3.2 向后傳播階段 183
16.4 算法實例 184
16.5 算法應用 188
16.6 算法的改進與優(yōu)化 193
16.7 本章小結 194
16.8 本章習題 194
第17章 遞歸神經網絡算法 196
17.1 算法概述 196
17.2 算法流程 197
17.3 算法步驟 198
17.4 算法實例 200
17.5 算法應用 204
17.6 算法的改進與優(yōu)化 207
17.7 本章小結 208
17.8 本章習題 208
課后習題答案 210
參考文獻 231