近年來人工智能技術(shù)蓬勃發(fā)展,人工智能正在改變我們的生活。為了讓讀者在不需要掌握太多數(shù)學(xué)
和計算機科學(xué)知識的情況下,能夠快速上手,使用 Python 語言實現(xiàn)常用的機器學(xué)習算法,并解決一些實際的問題,我們策劃并出版本書。
本書共 14 章,內(nèi)容涵蓋基本的機器學(xué)習概念和環(huán)境搭建,目前各個領(lǐng)域中的熱門算法,以及數(shù)據(jù)預(yù)處理、模型評估和文本數(shù)據(jù)分析等。希望本書可以讓讀者輕松入門,在動手實踐的過程中找到樂趣。
本書可以作為各大院校人工智能相關(guān)專業(yè)的教材,也可以作為培訓(xùn)機構(gòu)的教材,還適合人工智能技術(shù)愛好者自學(xué)使用。
1.以操作實踐為學(xué)習的切入點,而不是直接切入理論講解。
2.以任務(wù)為驅(qū)動,貫穿知識內(nèi)容。
3.充分考慮學(xué)習者的認知曲線,由淺入深,邊講邊練邊切入理論知識。
4.通過項目實訓(xùn)訓(xùn)練技能的綜合使用能力。
肖睿,課工場創(chuàng)始人,北京大學(xué)教育學(xué)博士,北京大學(xué)軟件學(xué)院特約講師,北京大學(xué)學(xué)習科學(xué)實驗室特約顧問。作為北大青鳥 Aptech 的聯(lián)合創(chuàng)始人,歷任學(xué)術(shù)總監(jiān)、研究院院長、公司副總裁等核心崗位,擁有20多年的IT職業(yè)教育產(chǎn)品管理和企業(yè)管理經(jīng)驗。于2015年創(chuàng)辦課工場,兼任總經(jīng)理,旨在為大學(xué)生提供更可靠的 IT 就業(yè)教育及服務(wù)。
第 1 章 機器學(xué)習概述 21
技能目標. 21
本章任務(wù). 21
任務(wù) 1.1:了解機器學(xué)習的基本概念 22
1.1.1 什么是機器學(xué)習 22
1.1.2 機器學(xué)習的起源與發(fā)展 23
任務(wù) 1.2:了解機器學(xué)習的應(yīng)用場景 25
1.2.1 機器學(xué)習技術(shù)在日常生活中的應(yīng)用 25
1.2.2 機器學(xué)習技術(shù)在不同行業(yè)中的應(yīng)用 28
任務(wù) 1.3:了解機器學(xué)習的學(xué)習路徑 30
1.3.1 學(xué)習機器學(xué)習的先決條件. 30
1.3.2 開啟你的“海綿模式” 32
1.3.3 開始動手實踐 . 33
任務(wù) 1.4:掌握機器學(xué)習的先導(dǎo)知識概念 34
本章小結(jié). 36
本章習題
第 2 章 機器學(xué)習工具安裝與使用 . 38
技能目標. 38
本章任務(wù). 38
任務(wù) 2.1:Anaconda 的安裝與使用 39
2.1.1 下載安裝 Anaconda. 39
2.1.2 Jupyter Notebook 的使用 41
任務(wù) 2.2:pandas 和可視化工具的基本使用 45
2.2.1 pandas 的基本使用 45
2.2.2 數(shù)據(jù)可視化工具的基本使用. 48
任務(wù) 2.3:掌握 scikit-learn 的基本操作 51
2.3.1.使用 scikit-learn 加載并檢查數(shù)據(jù) 51
2.3.2.使用 scikit-learn 訓(xùn)練模型并評估 54
2.3.3.保存和載入訓(xùn)練好的模型文件 . 56
本章小結(jié). 57
本章習題
第 3 章 線性模型 59
技能目標. 59
本章任務(wù). 59
任務(wù) 3.1:掌握線性模型的基本概念和線性回歸的使用 60
3.1.1 線性模型的基本概念 60
3.1.2 線性回歸模型的使用 62
任務(wù) 3.2: 掌握嶺回歸的原理及使用 66
3.2.1 嶺回歸的原理 . 67
3.2.2 嶺回歸的使用 . 69
任務(wù) 3.3:掌握套索回歸的原理及使用 73
3.3.1 套索回歸的原理 73
3.3.2 套索回歸的參數(shù)調(diào)節(jié) 74
任務(wù) 3.4: 了解邏輯回歸與線性支持向量機. 76
3.4.1 邏輯回歸與線性支持向量機簡介 . 77
3.4.2 訓(xùn)練邏輯回歸模型并預(yù)測. 77
3.4.3 訓(xùn)練線性支持向量機模型并預(yù)測 . 79
本章小結(jié). 80
本章習題
第 4 章 決策樹和隨機森林. 81
技能目標. 81
本章任務(wù). 81
任務(wù) 4.1: 初步掌握決策樹算法 . 82
4.1.1 什么是決策樹算法 82
4.1.2 決策樹的基本使用方法 83
4.1.3 決策樹中的 max_depth 參數(shù) . 85
4.1.4 決策樹的模型展現(xiàn). 91
4.1.5 決策樹的優(yōu)勢與不足 92
任務(wù) 4.2: 初步掌握隨機森林算法 93
4.2.1 什么是隨機森林算法 93
4.2.2 隨機森林算法中的參數(shù)解釋 94
4.2.3 隨機森林與決策樹模型的差異 95
4.2.4 隨機森林的優(yōu)勢與不足 . 96
任務(wù) 4.3:使用決策樹與隨機森林實戰(zhàn)練習. 97
4.3.1 下載數(shù)據(jù)集并載入 97
4.3.2 了解數(shù)據(jù)集的特征 98
4.3.3 使用數(shù)據(jù)集訓(xùn)練決策樹與隨機森林 99
本章小結(jié). 102
本章習題
第 5 章 支持向量機 103
技能目標. 103
本章任務(wù). 103
任務(wù) 5.1: 理解支持向量機的基本原理 104
5.1.1 “線性不可分”的數(shù)據(jù)集 104
5.1.2 將數(shù)據(jù)投射到高維空間 105
5.1.3 “不線性”的支持向量機. 106
任務(wù) 5.2:理解支持向量機的核函數(shù)和 gamma 參數(shù) . 108
5.2.1 支持向量機的 RBF 內(nèi)核 108
5.2.2 不同內(nèi)核的支持向量機對比. 110
5.2.3 gamma 參數(shù)對模型的影響. 112
5.2.4 支持向量機中的 C 參數(shù) 114
5.2.5 支持向量機的優(yōu)勢與不足. 116
任務(wù) 5.3:使用支持向量機算法進行實戰(zhàn)練習. 116
5.3.1 數(shù)據(jù)集準備與初步了解 116
5.3.2 探索性數(shù)據(jù)分析 119
5.3.3 初步訓(xùn)練支持向量機模型. 121
5.3.4 對數(shù)據(jù)進行預(yù)處理并重新訓(xùn)練模型 123
本章小結(jié). 127
本章習題
第 6 章 樸素貝葉斯 128
技能目標. 128
本章任務(wù). 128
任務(wù) 6.1: 了解樸素貝葉斯的基本原理和使用 128
6.1.1 樸素貝葉斯算法的基本原理. 129
6.1.2 樸素貝葉斯用法示例 130
任務(wù) 6.2: 了解不同樸素貝葉斯變體的差異 . 131
6.2.1 伯努利樸素貝葉斯的不足. 132
6.2.2 用高斯樸素貝葉斯替代伯努利樸素貝葉斯 133
6.2.3 多項式樸素貝葉斯簡介 134
任務(wù) 6.3: 掌握樸素貝葉斯的實際應(yīng)用. 135
6.3.1 獲取數(shù)據(jù)集并檢查 135
6.3.2 數(shù)據(jù)預(yù)處理與模型訓(xùn)練 . 136
6.3.3 樣本數(shù)量對樸素貝葉斯模型的影響 138
本章小結(jié). 140
本章習題
第 7 章 K 最近鄰算法. 141
技能目標. 141
本章任務(wù). 141
任務(wù) 7.1:了解 K 最近鄰算法. 142
7.1.1 K 最近鄰算法的簡介及原理. 142
任務(wù) 7.2:掌握 K 最近鄰算法在分類任務(wù)中的應(yīng)用. 144
7.2.1 K 最近鄰算法在二元分類任務(wù)中的應(yīng)用 145
7.2.2 K 最近鄰算法處理多元分類任務(wù) . 148
任務(wù) 7.3:掌握 K 最近鄰算法在回歸分析中的應(yīng)用. 151
7.3.1 掌握 K 最近鄰算法在回歸分析中的應(yīng)用. 151
任務(wù) 7.4:使用 K 最近鄰算法實戰(zhàn)練習 155
7.4.1 對數(shù)據(jù)集進行分析 155
7.4.2 生成訓(xùn)練集和驗證集 158
7.4.3 使用 K 最近鄰算法進行建模并調(diào)優(yōu) 160
7.4.4 使用模型對新樣本進行預(yù)測. 164
本章小結(jié). 166
本章習題
第 8 章 神經(jīng)網(wǎng)絡(luò) 167
技能目標. 167
本章任務(wù). 167
任務(wù) 8.1:了解神經(jīng)網(wǎng)絡(luò)的起源與發(fā)展 168
8.1.1 了解神經(jīng)網(wǎng)絡(luò)的起源. 169
8.1.2 了解神經(jīng)網(wǎng)絡(luò)的發(fā)展. 170
任務(wù) 8.2:掌握神經(jīng)網(wǎng)絡(luò)的原理. 172
8.2.1 了解神經(jīng)網(wǎng)絡(luò)的原理 172
任務(wù) 8.3:掌握神經(jīng)網(wǎng)絡(luò)中的激活函數(shù) 175
8.3.1 了解激活函數(shù) 175
8.3.2 使用激活函數(shù) 176
任務(wù) 8.4:掌握神經(jīng)網(wǎng)絡(luò)中的參數(shù)調(diào)節(jié) 178
8.4.1 分析數(shù)據(jù)集并展現(xiàn). 178
8.4.2 參數(shù)調(diào)節(jié) 182
任務(wù) 8.5:使用神經(jīng)網(wǎng)絡(luò)解決實際問題 187
8.5.1 分析 fashion-mnist 數(shù)據(jù)集 187
8.5.2 訓(xùn)練 MLP 神經(jīng)網(wǎng)絡(luò). 190
8.5.3 使用模型進行圖片識別 190
本章小結(jié). 192
本章習題
第 9 章 聚類. 194
技能目標. 194
本章任務(wù). 194
任務(wù) 9.1:了解聚類算法的原理與用途 195
9.1.1 了解聚類算法的原理. 195
9.1.2 了解聚類算法的用途. 197
17 / 305任務(wù) 9.2:掌握 K 均值算法的原理和使用 198
9.2.1 了解 K 均值算法的原理 199
9.2.2 使用 K 均值算法進行簡單聚類分析 200
任務(wù) 9.3:掌握 DBSCAN 算法的原理和使用. 203
9.3.1 了解 DBSCAN 算法的原理 203
9.3.2 使用 DBSCAN 算法進行簡單聚類分析 . 205
任務(wù) 9.4:使用聚類算法解決實際問題 211
9.4.1 對數(shù)據(jù)集進行分析 212
9.4.2 使用 K 均值算法進行聚類分析. 214
本章小結(jié). 221
本章習題
第 10 章 數(shù)據(jù)降維、特征提取與流形學(xué)習 222
技能目標. 222
本章任務(wù). 222
任務(wù) 10.1: 使用 PCA 主成分分析進行數(shù)據(jù)降維. 223
10.1.1 PCA 主成分分析介紹 223
10.1.2 使用 PCA 降維以便進行可視化 226
10.1.3 PCA 主成分與原始特征的關(guān)系. 227
任務(wù) 10.2: 使用 PCA 中的數(shù)據(jù)白化功能進行特征提取 229
10.2.1 使用人臉識別數(shù)據(jù)集進行實驗 229
10.2.2 使用 PCA 進行特征提取 232
10.2.3 特征提取對于模型準確率的影響 234
任務(wù) 10.3: 使用 t-SNE 對數(shù)據(jù)降維并進行可視化. 235
10.3.1 t-SNE 簡介 235
10.3.2 使用 PCA 降維作為 Baseline 236
10.3.3 使用 t-SNE 降維并進行可視化 239
本章小結(jié). 241
本章習題
第 11 章 模型選擇、優(yōu)化及評估. 242
技能目標. 242
本章任務(wù). 242
任務(wù) 11.1:掌握交叉驗證方法對模型進行評估. 243
11.1.1 交叉驗證法簡介. 243
11.1.2 K-折疊交叉驗證法 243
11.1.3 隨機拆分和留一交叉驗證法 246
任務(wù) 11.2:掌握網(wǎng)格搜索法尋找模型的最優(yōu)參數(shù). 248
11.2.1 了解及使用簡單網(wǎng)格搜索 248
11.2.2 與交叉驗證結(jié)合的網(wǎng)格搜索 250
任務(wù) 11.3:掌握模型的不同評價標準 253
11.3.1 分類模型的評價標準 253
11.3.2 使用 R 平方分數(shù)評估回歸模型. 255
本章小結(jié). 258
本章習題
第 12 章 數(shù)據(jù)預(yù)處理與特征選擇. 259
技能目標. 259
本章任務(wù). 259
任務(wù) 12.1:掌握常用的數(shù)據(jù)標準化方法 260
12.1.1 使用 StandardScaler 進行數(shù)據(jù)預(yù)處理 260
12.1.2 使用 MinMaxScaler 進行數(shù)據(jù)標準化處理 262
12.1.3 使用 Normalizer 進行數(shù)據(jù)標準化處理. 264
12.1.4 使用 RobustScaler 進行數(shù)據(jù)標準化處理 265
任務(wù) 12.2:掌握常用的數(shù)據(jù)表達方法 267
12.2.1 虛擬變量. 267
12.2.2 數(shù)據(jù)分箱. 269
任務(wù) 12.3:掌握常用的特征選擇方法 274
12.3.1 單變量統(tǒng)計 . 274
12.3.2 基于模型的特征選擇 278
12.3.3 迭代特征選擇 279
本章小結(jié). 280
本章習題
第 13 章 處理文本數(shù)據(jù) 282
技能目標. 282
本章任務(wù). 282
任務(wù) 13.1:掌握文本數(shù)據(jù)的特征提取、漢語分詞和詞包模型 283
13.1.1 基于計數(shù)向量器的文本特征提取. 283
13.1.2 對漢語文本進行分詞處理 285
13.1.3 使用詞包模型將文本轉(zhuǎn)換為數(shù)組. 286
任務(wù) 13.2:文本數(shù)據(jù)的進一步優(yōu)化處理 287
13.2.1 默認參數(shù)下詞包模型的問題. 287
13.2.2 調(diào)整 n_Gram 參數(shù)重新建立模型 . 288
任務(wù) 13.3:使用真實數(shù)據(jù)進行實戰(zhàn)練習 290
13.3.1 載入數(shù)據(jù)集并查看特征 290
13.3.2 文本數(shù)據(jù)預(yù)處理. 291
13.3.3 使用“樸素貝葉斯”算法訓(xùn)練模型. 294
13.3.4 使用模型判斷消費者評論 295
本章小結(jié). 296
本章習題
第 14 章 未來職業(yè)發(fā)展前景與方向 . 298
技能目標. 298
本章任務(wù). 298
任務(wù):了解數(shù)據(jù)科學(xué)家的職業(yè)發(fā)展 298
14.1.1 數(shù)據(jù)科學(xué)家的養(yǎng)成 298
14.1.2 在實踐中提高技能 301
14.1.3 未來的學(xué)習方向 303
本章小結(jié). 305
本章習題