本書圍繞scikit-learn庫,詳細介紹機器學習模型、算法、應用場景及其案例實現方法,通過對相關算法循序漸進的講解,帶你輕松踏上機器學習之旅。本書采用理論與實踐相結合的方式,結合Python3語言的強大功能,以小的編程代價來實現機器學習算法。本書配套PPT課件、案例源碼、數據集、開發環境與答疑服務。 本書共分13章,內容包括機器學習的基礎理論、模型范式、策略、算法以及機器學習的應用開發,涵蓋特征提取、簡單線性回歸、k近鄰算法、多元線性回歸、邏輯回歸、樸素貝葉斯、非線性分類、決策樹回歸、隨機森林、感知機、支持向量機、人工神經網絡、K均值算法、主成分分析等熱點研究領域。 本書可以作為機器學習初學者、研究人員或從業人員的參考書,也可以作為計算機科學、大數據、人工智能、統計學和社會科學等專業的大學生或研究生的教材。
涵蓋機器學習模型和scikit-learn使用技巧、基本工具和實現方法,循序漸進地講解相關機器學習算法,帶你輕松踏上機器學習之旅。
采用理論與實踐相結合的方式,結合Python 3的強大功能,以最小的編程代價實現機器學習算法。
全程以真實案例驅動,詳解機器學習的基本概念、算法流程、模型構建、數據訓練、模型評估與調優、必備工具和實現方法。
機器學習實際上已經存在了幾十年,或者也可以認為存在了幾個世紀。追溯到17世紀,貝葉斯、拉普拉斯關于最小二乘法的推導和馬爾可夫鏈,這些構成了機器學習廣泛使用的工具和基礎。從1950年艾倫·圖靈提議搭建一個學習機器開始,到2000年年初深度學習的實際應用以及最近的進展,比如2012年的AlexNet,機器學習有了很大的發展。
scikit-learn項目最早由數據科學家 David Cournapeau在2007年發起,需要NumPy和SciPy等其他包的支持,它是Python語言中專門針對機器學習應用而發展起來的一款開源框架。
機器學習是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。它專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構并使之不斷改善自身的性能。它是人工智能的核心,即使計算機具有智能的根本途徑。
本書針對機器學習這個領域,描述了多種學習模型、策略、算法、理論以及應用,基于Python3使用scikit-learn工具包演示算法解決實際問題的過程。對機器學習感興趣的讀者可通過本書快速入門,快速勝任機器學習崗位,成為人工智能時代的人才。
讀者需要了解的重要信息
本書作為機器學習專業圖書,介紹機器學習的基本概念、算法流程、模型構建、數據訓練、模型評估與調優、必備工具和實現方法,全程以真實案例驅動,案例采用Python3實現。本書涵蓋數據獲得、算法模型、案例代碼實現和結果展示的全過程,以機器學習的經典算法為軸線:算法分析數據獲取模型構建推斷算法評估。本書案例具有代表性,結合了理論與實踐,并能明確機器學習的目標及完成效果。
本書內容
本書共分13章,系統講解機器學習的典型算法,內容包括機器學習概述、數據特征提取、scikit-learn估計器分類、樸素貝葉斯分類、線性回歸、k近鄰算法分類和回歸、從簡單線性回歸到多元線性回歸、從線性回歸到邏輯回歸、非線性分類和決策樹回歸、從決策樹到隨機森林、從感知機到支持向量機、從感知機到人工神經網絡、主成分分析降維。
本書的例子都是在Python3集成開發環境Anaconda3中經過實際調試通過的典型案例,同時本書配備了案例的源碼和數據集供讀者參考。
配套資源下載
本書配套的案例源碼、PPT課件、數據集、開發環境和答疑服務,需要使用微信掃描下邊的二維碼下載,可按掃描后的頁面提示,把鏈接轉發到自己的郵箱中下載。如果有疑問,請聯系booksaga@163.com,郵件主題寫scikit-learn機器學習實戰。
本書讀者
本書適合大數據分析與挖掘、機器學習與人工智能技術的初學者、研究人員及從業人員,也適合作為高等院校和培訓機構大數據、機器學習與人工智能相關專業的師生教學參考。
致 謝
本書完成之際,感謝合作者與清華大學出版社各位老師的支持。作者夜以繼日用了近一年的時間寫作,并不斷修正錯誤和完善知識結構。由于作者水平有限,書中有紕漏之處還請讀者不吝賜教。本書寫作過程中參考的圖書與網絡資源都在參考文獻中給出了出處。
鄧立國
2022年1月
鄧立國,東北大學計算機應用博士畢業。廣東工業大學任教,主要研究方向:數據挖掘、知識工程、大數據處理、云計算、分布式計算等。著有圖書《scikit-learn機器學習實戰》《Python數據分析與挖掘實戰》《Python大數據分析算法與實例》《Python機器學習算法與應用》《數據庫原理與應用(SQL Server 2016版本)》等圖書。
第1章 機器學習概述 1
1.1 什么是機器學習 1
1.2 機器學習的作用領域 3
1.3 機器學習的分類 4
1.4 機器學習理論基礎 6
1.5 機器學習應用開發的典型步驟 7
1.6 本章小結 8
1.7 復習題 8
第2章 機器學習之數據特征 9
2.1 數據的分布特征 9
2.1.1 數據分布集中趨勢的測度 9
2.1.2 數據分布離散程度的測定 14
2.1.3 數據分布偏態與峰度的測定 17
2.2 數據的相關性 19
2.2.1 相關關系 19
2.2.2 相關分析 22
2.3 數據的聚類性 24
2.4 數據主成分分析 27
2.4.1 主成分分析的原理及模型 27
2.4.2 主成分分析的幾何解釋 29
2.4.3 主成分的導出 30
2.4.4 證明主成分的方差是依次遞減的 31
2.4.5 主成分分析的計算 32
2.5 數據動態性及其分析模型 34
2.5.1 動態數據及其特點 34
2.5.2 動態數據分析模型分類 35
2.5.3 平穩時間序列建模 35
2.6 數據可視化 37
2.7 本章小結 39
2.8 復習題 39
第3章 用scikit-learn估計器分類 40
3.1 scikit-learn基礎 40
3.1.1 sklearn包含的機器學習方式 40
3.1.2 sklearn的強大數據庫 41
3.1.3 sklearn datasets構造數據 42
3.2 scikit-learn估計器 43
3.2.1 sklearn估計器的類別 43
3.2.2 sklearn分類器的比較 43
3.3 本章小結 47
3.4 復習題 48
第4章 樸素貝葉斯分類 49
4.1 算法原理 49
4.1.1 樸素貝葉斯算法原理 49
4.1.2 樸素貝葉斯分類法 50
4.1.3 拉普拉斯校準 52
4.2 樸素貝葉斯分類 52
4.2.1 高斯樸素貝葉斯 53
4.2.2 伯努利樸素貝葉斯 54
4.2.3 多項式樸素貝葉斯 55
4.3 樸素貝葉斯分類實例 57
4.4 樸素貝葉斯連續值的處理 60
4.5 本章小結 62
4.6 復習題 63
第5章 線性回歸 64
5.1 簡單線性回歸模型 64
5.1.1 一元線性回歸模型 64
5.1.2 損失函數 65
5.1.3 梯度下降算法 65
5.1.4 二元線性回歸模型 67
5.1.5 多元線性回歸模型 68
5.2 分割數據集 68
5.2.1 訓練集和測試集 69
5.2.2 驗證集 72
5.3 用簡單線性回歸模型預測考試成績 73
5.3.1 創建數據集并提取特征和標簽 73
5.3.2 模型訓練 75
5.4 本章小結 78
5.5 復習題 78
第6章 用k近鄰算法分類和回歸 79
6.1 k近鄰算法模型 79
6.1.1 k近鄰算法的原理 79
6.1.2 距離的度量 81
6.1.3 算法的優缺點及算法的變種 81
6.2 用k近鄰算法處理分類問題 82
6.3 用k近鄰算法對鳶尾花進行分類 85
6.3.1 導入數據集 85
6.3.2 模型訓練 86
6.4 用k近鄰算法進行回歸擬合 88
6.5 本章小結 90
6.6 復習題 91
第7章 從簡單線性回歸到多元線性回歸 92
7.1 多變量的線性模型 92
7.1.1 簡單線性回歸模型 92
7.1.2 多元線性回歸模型的預測函數 93
7.1.3 向量形式的預測函數 93
7.1.4 向量形式的損失函數 94
7.1.5 梯度下降算法 94
7.2 模型的優化 94
7.2.1 數據歸一化 94
7.2.2 欠擬合和過擬合 96
7.2.3 正則化 99
7.2.4 線性回歸與多項式 101
7.2.5 查準率和召回率 102
7.3 用多元線性回歸模型預測波士頓房價 103
7.3.1 導入波士頓房價數據 104
7.3.2 模型訓練 105
7.3.3 模型優化 106
7.3.4 學習曲線 108
7.4 本章小結 110
7.5 復習題 110
第8章 從線性回歸到邏輯回歸 111
8.1 邏輯回歸模型 111
8.1.1 基本公式 112
8.1.2 邏輯回歸算法的代價函數 113
8.1.3 邏輯回歸算法的損失函數 114
8.1.4 梯度下降算法 114
8.2 多元分類問題 115
8.2.1 OVR 115
8.2.2 softmax函數 116
8.3 正則化項 118
8.3.1 線性回歸的正則化 118
8.3.2 邏輯回歸的正則化 119
8.4 模型優化 119
8.4.1 判定邊界 119
8.4.2 L1和L2的區別 120
8.5 用邏輯回歸算法處理二分類問題 121
8.5.1 導入數據集 122
8.5.2 模型訓練 123
8.5.3 學習曲線 125
8.6 識別手寫數字的多元分類問題 128
8.6.1 導入數據集 128
8.6.2 模型訓練 129
8.6.3 模型優化 131
8.7 本章小結 132
8.8 復習題 132
第9章 非線性分類和決策樹回歸 133
9.1 決策樹的特點 133
9.2 決策樹分類 135
9.3 決策樹回歸 137
9.4 決策樹的復雜度及使用技巧 139
9.5 決策樹算法:ID3、C4.5和CART 140
9.5.1 ID3算法 140
9.5.2 C4.5算法 141
9.5.3 CART算法 142
9.6 本章小結 143
9.7 復習題 143
第10章 集成方法:從決策樹到隨機森林 144
10.1 Bagging元估計器 144
10.2 由隨機樹組成的森林 145
10.2.1 隨機森林 145
10.2.2 極限隨機樹 146
10.2.3 參數 146
10.2.4 并行化 147
10.2.5 特征重要性評估 147
10.3 AdaBoost 149
10.3.1 AdaBoost算法 149
10.3.2 AdaBoost使用方法 150
10.4 梯度提升回歸樹 150
10.4.1 分類 151
10.4.2 回歸 151
10.4.3 訓練額外的弱學習器 153
10.4.4 控制樹的大小 154
10.4.5 數學公式 154
10.4.6 正則化 155
10.4.7 投票分類器 157
10.4.8 投票回歸器 159
10.5 本章小結 161
10.6 復習題 161
第11章 從感知機到支持向量機 162
11.1 線性支持向量機分類 162
11.1.1 線性支持向量機分類示例 163
11.1.2 軟間隔分類 165
11.2 非線性支持向量機分類 168
11.2.1 多項式內核 169
11.2.2 相似特征 171
11.2.3 高斯RBF內核 173
11.2.4 計算復雜度 175
11.3 支持向量機回歸 175
11.4 本章小結 178
11.5 復習題 178
第12章 從感知機到人工神經網絡 179
12.1 從神經元到人工神經元 179
12.1.1 生物神經元 180
12.1.2 神經元的邏輯計算 181
12.2 感知機 182
12.3 多層感知機 186
12.3.1 反向傳播算法 187
12.3.2 激活函數 188
12.3.3 分類MLP 189
12.3.4 回歸MLP 190
12.3.5 實用技巧 191
12.4 本章小結 192
12.5 復習題 192
第13章 主成分分析降維 193
13.1 數據的向量表示及降維問題 193
13.2 向量的表示及基變換 194
13.2.1 內積與投影 194
13.2.2 基 195
13.2.3 基變換的矩陣表示 196
13.3 協方差矩陣及優化目標 197
13.3.1 方差 198
13.3.2 協方差 199
13.3.3 協方差矩陣 199
13.3.4 協方差矩陣對角化 200
13.4 PCA算法流程 201
13.5 PCA實例 202
13.6 scikit-learn PCA降維實例 203
13.7 核主成分分析KPCA簡介 208
13.8 本章小結 209
13.9 復習題 209
參考文獻 210