機(jī)器學(xué)習(xí)正在迅速改變我們的世界。我們幾乎每天都會(huì)讀到機(jī)器學(xué)習(xí)如何改變?nèi)粘5纳睢H绻阍谔詫毣蛘?這樣的電子商務(wù)網(wǎng)站購買商品,或者在愛奇藝或是騰訊視頻這樣的視頻網(wǎng)站觀看節(jié)目,甚至只是進(jìn)行一次百度搜索,就已經(jīng)觸碰到了機(jī)器學(xué)習(xí)的應(yīng)用。使用這些服務(wù)的用戶會(huì)產(chǎn)生數(shù)據(jù),這些數(shù)據(jù)會(huì)被收集,在進(jìn)行預(yù)處理之后用來訓(xùn)練模型,而模型會(huì)通過這些數(shù)據(jù)來提供更好的用戶體驗(yàn)。此外,目前還有很多使用機(jī)器學(xué)習(xí)技術(shù)的產(chǎn)品或服務(wù)即將在我們的生活當(dāng)中普及,如能夠解放雙手的無人駕駛汽車、聰明伶俐的智能家居產(chǎn)品、善解人意的導(dǎo)購機(jī)器人等。可以說要想深入機(jī)器學(xué)習(xí)的應(yīng)用開發(fā)當(dāng)中,現(xiàn)在就是一個(gè)非常理想的時(shí)機(jī)。
本書內(nèi)容涵蓋了有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、模型優(yōu)化、自然語言處理等機(jī)器學(xué)習(xí)領(lǐng)域所必須掌握的知識(shí),從內(nèi)容結(jié)構(gòu)上非常注重知識(shí)的實(shí)用性和可操作性。全書采用由淺入深、循序漸進(jìn)的講授方式,完全遵循和尊重初學(xué)者對(duì)機(jī)器學(xué)習(xí)知識(shí)的認(rèn)知規(guī)律。本書適合有一定程序設(shè)計(jì)語言和算法基礎(chǔ)的讀者學(xué)習(xí)使用。
人工智能,火了!計(jì)算機(jī)是由程序驅(qū)動(dòng)的,人工智能不過是一些特殊的算法。只要你有一些程序設(shè)計(jì)語言的基礎(chǔ),跟隨本書,你也能進(jìn)入人工智能的世界,成為一名人工智能應(yīng)用的開發(fā)者。
本書特色
1. 內(nèi)容實(shí)用實(shí)在、詳略得當(dāng),講授符合初學(xué)者的認(rèn)知規(guī)律
本書內(nèi)容涵蓋了有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、模型優(yōu)化、自然語言處理等機(jī)器學(xué)習(xí)領(lǐng)域所必須掌握的知識(shí),從內(nèi)容結(jié)構(gòu)上非常注重知識(shí)的實(shí)用性和可操作性。必須掌握的細(xì)節(jié)處絕不吝惜筆墨、手把手細(xì)致到每一次的鼠標(biāo)點(diǎn)擊;僅需要大致了解處絕不鋪張浪費(fèi)紙張、整體結(jié)構(gòu)的描述提綱挈領(lǐng)。這樣的安排注重了對(duì)初學(xué)階段必備知識(shí)的深入了解,大致了解的知識(shí)也能夠有所認(rèn)識(shí),這種由淺入深、循序漸進(jìn)的講授完全是遵循和尊重了初學(xué)者對(duì)機(jī)器學(xué)習(xí)知識(shí)的認(rèn)知規(guī)律。
2. 行文幽默詼諧,以實(shí)例引導(dǎo)全程,特別適合初學(xué)者閱讀
本書介紹的基本理論知識(shí)、用于分類的機(jī)器學(xué)習(xí)算法、用于回歸的機(jī)器學(xué)習(xí)算法、數(shù)據(jù)預(yù)處理、數(shù)據(jù)表達(dá)與特征工程等,都是使用非常貼近生活場(chǎng)景的實(shí)例來引導(dǎo)的,這樣就避免了知識(shí)講述過于抽象,非常易于理解。同時(shí),作者以幽默詼諧,貼近時(shí)代的語言對(duì)這些知識(shí)進(jìn)行生動(dòng)、通俗的一一講解,猶如一位你的老朋友,幫助你縮短入門機(jī)器學(xué)習(xí)的時(shí)間?v觀全書,作者將大學(xué)生小 C 追求女神以及幫助他的朋友處理日常問題同機(jī)器學(xué)習(xí)的理論與操作進(jìn)行對(duì)比介紹,這就使得整個(gè)學(xué)習(xí)過程變得簡(jiǎn)單、生動(dòng)起來。
3. 配套的人才培養(yǎng)與引入計(jì)劃,幫助讀者將學(xué)習(xí)成果轉(zhuǎn)化為真正的生產(chǎn)力
在筆者過去的工作當(dāng)中,累積了數(shù)量可觀的各大互聯(lián)網(wǎng)公司招聘通道資源,以及諸多獵頭資源,可以幫助學(xué)有所長(zhǎng)的讀者快速進(jìn)入一個(gè)實(shí)際操作的場(chǎng)景中進(jìn)一步提高自己的實(shí)操能力。除此之外,筆者和國(guó)內(nèi)大部分相關(guān)的產(chǎn)業(yè)發(fā)展部門有著密切的聯(lián)系,對(duì)于有志于在人工智能領(lǐng)域創(chuàng)業(yè)的創(chuàng)業(yè)者來說,也能夠幫助其對(duì)接政策資源,幫助大家在創(chuàng)業(yè)過程中得到有關(guān)部門的支持,從而使得創(chuàng)業(yè)之路變得不那么坎坷。
段小手,君兮科技創(chuàng)始人,畢業(yè)于北京大學(xué)。具有10余年國(guó)內(nèi)一線互聯(lián)網(wǎng)/電子商務(wù)公司項(xiàng)目管理經(jīng)驗(yàn)。其負(fù)責(zé)的跨境電子商務(wù)項(xiàng)目曾獲得國(guó)家發(fā)改委電子商務(wù)示范項(xiàng)目中關(guān)村現(xiàn)代服務(wù)業(yè)試點(diǎn)項(xiàng)目北京市信息化基礎(chǔ)設(shè)施提升項(xiàng)目北京市外貿(mào)綜合公共平臺(tái)等專項(xiàng)政策支持。目前重點(diǎn)研究領(lǐng)域?yàn)闄C(jī)器學(xué)習(xí)和深度學(xué)習(xí)等方面。
目
錄
第1章
概 述
1.1 什么是機(jī)器學(xué)習(xí)從一個(gè)小故事開始 /
002
1.2 機(jī)器學(xué)習(xí)的一些應(yīng)用場(chǎng)景蝙蝠公司的業(yè)務(wù)單元 / 003
1.3 機(jī)器學(xué)習(xí)應(yīng)該如何入門世上無難事 /
005
1.4 有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí) / 007
1.5 機(jī)器學(xué)習(xí)中的分類與回歸 / 008
1.6 模型的泛化、過擬合與欠擬合 / 008
1.7 小結(jié) / 009
第2章
基于Python語言的環(huán)境配置
2.1 Python的下載和安裝 / 012
2.2 Jupyter Notebook的安裝與使用方法 /
013
2.2.1 使用pip進(jìn)行Jupyter
Notebook的下載和安裝 / 013
2.2.2 運(yùn)行Jupyter Notebook /
014
2.2.3 Jupyter Notebook的使用方法 / 015
2.3 一些必需庫的安裝及功能簡(jiǎn)介 / 017
2.3.1 Numpy基礎(chǔ)科學(xué)計(jì)算庫 / 017
2.3.2 Scipy強(qiáng)大的科學(xué)計(jì)算工具集 / 018
2.3.3 pandas數(shù)據(jù)分析的利器 / 019
2.3.4 matplotlib畫出優(yōu)美的圖形 /
020
深入淺出Python 機(jī)器學(xué)習(xí)
VIII
2.4 scikit-learn非常流行的Python機(jī)器學(xué)習(xí)庫 / 021
2.5 小結(jié) / 022
第3章 K最近鄰算法近朱者赤,近墨者黑
3.1 K最近鄰算法的原理 / 024
3.2 K最近鄰算法的用法 / 025
3.2.1 K最近鄰算法在分類任務(wù)中的應(yīng)用 / 025
3.2.2 K最近鄰算法處理多元分類任務(wù) / 029
3.2.3 K最近鄰算法用于回歸分析 / 031
3.3 K最近鄰算法項(xiàng)目實(shí)戰(zhàn)酒的分類 / 034
3.3.1 對(duì)數(shù)據(jù)集進(jìn)行分析 / 034
3.3.2 生成訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集 / 036
3.3.3 使用K最近鄰算法進(jìn)行建模 /
038
3.3.4 使用模型對(duì)新樣本的分類進(jìn)行預(yù)測(cè) / 039
3.4 小結(jié) / 041
第4章
廣義線性模型耿直的算法模型
4.1 線性模型的基本概念 / 044
4.1.1 線性模型的一般公式 / 044
4.1.2 線性模型的圖形表示 / 045
4.1.3 線性模型的特點(diǎn) / 049
4.2 最基本的線性模型線性回歸 / 050
4.2.1 線性回歸的基本原理 / 050
4.2.2 線性回歸的性能表現(xiàn) / 051
4.3 使用L2正則化的線性模型嶺回歸
/ 053
4.3.1 嶺回歸的原理 / 053
4.3.2 嶺回歸的參數(shù)調(diào)節(jié) / 054
4.4 使用L1正則化的線性模型套索回歸 / 058
4.4.1 套索回歸的原理 / 058
4.4.2 套索回歸的參數(shù)調(diào)節(jié) / 059
4.4.3 套索回歸與嶺回歸的對(duì)比 / 060
目
錄
IX
4.5 小結(jié) / 062
第5章
樸素貝葉斯打雷啦,收衣服啊
5.1 樸素貝葉斯基本概念 / 064
5.1.1 貝葉斯定理 / 064
5.1.2 樸素貝葉斯的簡(jiǎn)單應(yīng)用 / 064
5.2 樸素貝葉斯算法的不同方法 / 068
5.2.1 貝努利樸素貝葉斯 / 068
5.2.2 高斯樸素貝葉斯 / 071
5.2.3 多項(xiàng)式樸素貝葉斯 / 072
5.3 樸素貝葉斯實(shí)戰(zhàn)判斷腫瘤是良性還是惡性
/ 075
5.3.1 對(duì)數(shù)據(jù)集進(jìn)行分析 / 076
5.3.2 使用高斯樸素貝葉斯進(jìn)行建模 / 077
5.3.3 高斯樸素貝葉斯的學(xué)習(xí)曲線 / 078
5.4 小結(jié) / 080
第6章
決策樹與隨機(jī)森林會(huì)玩讀心術(shù)的算法
6.1 決策樹 / 082
6.1.1 決策樹基本原理 / 082
6.1.2 決策樹的構(gòu)建 / 082
6.1.3 決策樹的優(yōu)勢(shì)和不足 / 088
6.2 隨機(jī)森林 / 088
6.2.1 隨機(jī)森林的基本概念 / 089
6.2.2 隨機(jī)森林的構(gòu)建 / 089
6.2.3 隨機(jī)森林的優(yōu)勢(shì)和不足 / 092
6.3 隨機(jī)森林實(shí)例要不要和相親對(duì)象進(jìn)一步發(fā)展
/ 093
6.3.1 數(shù)據(jù)集的準(zhǔn)備 / 093
6.3.2 用get_dummies處理數(shù)據(jù) / 094
6.3.3 用決策樹建模并做出預(yù)測(cè) / 096
6.4 小結(jié) / 098
第7章
支持向量機(jī)SVM專治線性不可分
7.1 支持向量機(jī)SVM基本概念 / 100
7.1.1 支持向量機(jī)SVM的原理 / 100
7.1.2 支持向量機(jī)SVM的核函數(shù) / 102
7.2 SVM的核函數(shù)與參數(shù)選擇 / 104
7.2.1 不同核函數(shù)的SVM對(duì)比 / 104
7.2.2 支持向量機(jī)的gamma參數(shù)調(diào)節(jié) / 106
7.2.3 SVM算法的優(yōu)勢(shì)與不足 / 108
7.3 SVM實(shí)例波士頓房?jī)r(jià)回歸分析 / 108
7.3.1 初步了解數(shù)據(jù)集 / 109
7.3.2 使用SVR進(jìn)行建模 / 110
7.4 小結(jié) / 114
第8章
神經(jīng)網(wǎng)絡(luò)曾入冷宮,如今得寵
8.1 神經(jīng)網(wǎng)絡(luò)的前世今生 / 116
8.1.1 神經(jīng)網(wǎng)絡(luò)的起源 / 116
8.1.2 第一個(gè)感知器學(xué)習(xí)法則 / 116
8.1.3 神經(jīng)網(wǎng)絡(luò)之父杰弗瑞·欣頓 / 117
8.2 神經(jīng)網(wǎng)絡(luò)的原理及使用 / 118
8.2.1 神經(jīng)網(wǎng)絡(luò)的原理 / 118
8.2.2 神經(jīng)網(wǎng)絡(luò)中的非線性矯正 / 119
8.2.3 神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置 / 121
8.3 神經(jīng)網(wǎng)絡(luò)實(shí)例手寫識(shí)別 / 127
8.3.1 使用MNIST數(shù)據(jù)集 / 128
8.3.2 訓(xùn)練MLP神經(jīng)網(wǎng)絡(luò) / 129
8.3.3 使用模型進(jìn)行數(shù)字識(shí)別 / 130
8.4 小結(jié) / 131
第9章
數(shù)據(jù)預(yù)處理、降維、特征提取及聚類快
刀斬亂麻
9.1 數(shù)據(jù)預(yù)處理 / 134
9.1.1 使用StandardScaler進(jìn)行數(shù)據(jù)預(yù)處理 / 134
9.1.2 使用MinMaxScaler進(jìn)行數(shù)據(jù)預(yù)處理 / 135
9.1.3 使用RobustScaler進(jìn)行數(shù)據(jù)預(yù)處理 / 136
9.1.4 使用Normalizer進(jìn)行數(shù)據(jù)預(yù)處理 / 137
9.1.5 通過數(shù)據(jù)預(yù)處理提高模型準(zhǔn)確率 / 138
9.2 數(shù)據(jù)降維 / 140
9.2.1 PCA主成分分析原理 / 140
9.2.2 對(duì)數(shù)據(jù)降維以便于進(jìn)行可視化 / 142
9.2.3 原始特征與PCA主成分之間的關(guān)系 /
143
9.3 特征提取 / 144
9.3.1 PCA主成分分析法用于特征提取 / 145
9.3.2 非負(fù)矩陣分解用于特征提取 / 148
9.4 聚類算法 / 149
9.4.1 K均值聚類算法 / 150
9.4.2 凝聚聚類算法 / 153
9.4.3 DBSCAN算法 / 154
9.5 小結(jié) / 157
第10章
數(shù)據(jù)表達(dá)與特征工程錦上再添花
10.1 數(shù)據(jù)表達(dá) / 160
10.1.1 使用啞變量轉(zhuǎn)化類型特征 / 160
10.1.2 對(duì)數(shù)據(jù)進(jìn)行裝箱處理 / 162
10.2 數(shù)據(jù)升維 / 166
10.2.1 向數(shù)據(jù)集添加交互式特征 / 166
10.2.2 向數(shù)據(jù)集添加多項(xiàng)式特征 / 170
10.3 自動(dòng)特征選擇 / 173
10.3.1 使用單一變量法進(jìn)行特征選擇 / 173
10.3.2 基于模型的特征選擇 / 178
10.3.3 迭代式特征選擇 / 180
10.4 小結(jié) / 182
第11章
模型評(píng)估與優(yōu)化只有更好,沒有最好
11.1 使用交叉驗(yàn)證進(jìn)行模型評(píng)估 / 184
11.1.1 scikit-learn中的交叉驗(yàn)證法 / 184
11.1.2 隨機(jī)拆分和挨個(gè)兒試試 / 186
11.1.3 為什么要使用交叉驗(yàn)證法 / 188
11.2 使用網(wǎng)格搜索優(yōu)化模型參數(shù) / 188
11.2.1 簡(jiǎn)單網(wǎng)格搜索 / 189
11.2.2 與交叉驗(yàn)證結(jié)合的網(wǎng)格搜索 / 191
11.3 分類模型的可信度評(píng)估 / 193
11.3.1 分類模型中的預(yù)測(cè)準(zhǔn)確率 / 194
11.3.2 分類模型中的決定系數(shù) / 197
11.4 小結(jié) / 198
第12章
建立算法的管道模型團(tuán)結(jié)就是力量
12.1 管道模型的概念及用法 / 202
12.1.1 管道模型的基本概念 / 202
12.1.2 使用管道模型進(jìn)行網(wǎng)格搜索 / 206
12.2 使用管道模型對(duì)股票漲幅進(jìn)行回歸分析 /
209
12.2.1 數(shù)據(jù)集準(zhǔn)備 / 209
12.2.2 建立包含預(yù)處理和MLP模型的管道模型 / 213
12.2.3 向管道模型添加特征選擇步驟 / 214
12.3 使用管道模型進(jìn)行模型選擇和參數(shù)調(diào)優(yōu) /
216
12.3.1 使用管道模型進(jìn)行模型選擇 / 216
12.3.2 使用管道模型尋找更優(yōu)參數(shù) / 217
12.4 小結(jié) / 220
第13章
文本數(shù)據(jù)處理親,見字如數(shù)
13.1 文本數(shù)據(jù)的特征提取、中文分詞及詞袋模型 /
222
13.1.1 使用CountVectorizer對(duì)文本進(jìn)行特征提取 /
222
13.1.2 使用分詞工具對(duì)中文文本進(jìn)行分詞 / 223
13.1.3 使用詞袋模型將文本數(shù)據(jù)轉(zhuǎn)為數(shù)組 / 224
13.2 對(duì)文本數(shù)據(jù)進(jìn)一步進(jìn)行優(yōu)化處理 / 226
13.2.1 使用n-Gram改善詞袋模型 / 226
13.2.2 使用tf-idf模型對(duì)文本數(shù)據(jù)進(jìn)行處理 /
228
13.2.3 刪除文本中的停用詞 / 234
13.3 小結(jié) / 236
第14章
從數(shù)據(jù)獲取到話題提取從研究員
到段子手
14.1 簡(jiǎn)單頁面的爬取 / 238
14.1.1 準(zhǔn)備Requests庫和User Agent
/ 238
14.1.2 確定一個(gè)目標(biāo)網(wǎng)站并分析其結(jié)構(gòu) / 240
14.1.3 進(jìn)行爬取并保存為本地文件 / 241
14.2 稍微復(fù)雜一點(diǎn)的爬取 / 244
14.2.1 確定目標(biāo)頁面并進(jìn)行分析 / 245
14.2.2 Python中的正則表達(dá)式 / 247
14.2.3 使用BeautifulSoup進(jìn)行HTML解析 / 251
14.2.4 對(duì)目標(biāo)頁面進(jìn)行爬取并保存到本地 / 256
14.3 對(duì)文本數(shù)據(jù)進(jìn)行話題提取 / 258
14.3.1 尋找目標(biāo)網(wǎng)站并分析結(jié)構(gòu) / 259
14.3.2 編寫爬蟲進(jìn)行內(nèi)容爬取 / 261
14.3.3 使用潛在狄利克雷分布進(jìn)行話題提取 /
263
14.4 小結(jié) / 265
第15章
人才需求現(xiàn)狀與未來學(xué)習(xí)方向你是不
是下一個(gè)大牛
15.1 人才需求現(xiàn)狀 / 268
15.1.1 全球AI從業(yè)者達(dá)190萬,人才需求3年翻8倍 / 268
15.1.2 AI人才需求集中于一線城市,七成從業(yè)者月薪過萬
/ 269
15.1.3 人才困境仍難緩解,政策支援亟不可待 /
269
15.2 未來學(xué)習(xí)方向 / 270
15.2.1 用于大數(shù)據(jù)分析的計(jì)算引擎 / 270
15.2.2 深度學(xué)習(xí)開源框架 / 271
15.2.3 使用概率模型進(jìn)行推理 / 272
15.3 技能磨煉與實(shí)際應(yīng)用 / 272
15.3.1 Kaggle算法大賽平臺(tái)和OpenML平臺(tái) / 272
15.3.2 在工業(yè)級(jí)場(chǎng)景中的應(yīng)用 / 273
15.3.3 對(duì)算法模型進(jìn)行A/B測(cè)試 / 273
15.4 小結(jié) / 274
參考文獻(xiàn) / 275