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