機(jī)器學(xué)習(xí)與預(yù)測(cè)分析正在改變企業(yè)和其他組織的運(yùn)作方式,本書將帶領(lǐng)讀者進(jìn)入預(yù)測(cè)分析的世界。全書共13章,除了簡(jiǎn)要介紹機(jī)器學(xué)習(xí)及Python在機(jī)器學(xué)習(xí)中的應(yīng)用,還系統(tǒng)講述了數(shù)據(jù)分類、數(shù)據(jù)預(yù)處理、模型優(yōu)化、集成學(xué)習(xí)、回歸、聚類、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等內(nèi)容。本書將機(jī)器學(xué)習(xí)背后的基本理論與應(yīng)用實(shí)踐聯(lián)系起來,通過這種方式讓讀者聚焦于如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強(qiáng)大的機(jī)器學(xué)習(xí)庫,同時(shí)還展示了如何正確使用一系列統(tǒng)計(jì)模型。本書可作為學(xué)習(xí)數(shù)據(jù)科學(xué)的初學(xué)者及想進(jìn)一步拓展數(shù)據(jù)科學(xué)領(lǐng)域認(rèn)識(shí)的讀者的參考書。同樣,本書也適合計(jì)算機(jī)等相關(guān)專業(yè)的本科生、研究生閱讀。
作 者 簡(jiǎn) 介Sebastian Raschka是密歇根州立大學(xué)的博士生,他在計(jì)算生物學(xué)領(lǐng)域提出了幾種新的計(jì)算方法,還被科技博客Analytics Vidhya評(píng)為GitHub上具影響力的數(shù)據(jù)科學(xué)家。他有一整年都使用Python進(jìn)行編程的經(jīng)驗(yàn),同時(shí)還多次參加數(shù)據(jù)科學(xué)應(yīng)用與機(jī)器學(xué)習(xí)領(lǐng)域的研討會(huì)。正是因?yàn)镾ebastian 在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)以及Python等領(lǐng)域擁有豐富的演講和寫作經(jīng)驗(yàn),他才有動(dòng)力完成此書的撰寫,目的是幫助那些不具備機(jī)器學(xué)習(xí)背景的人設(shè)計(jì)出由數(shù)據(jù)驅(qū)動(dòng)的解決方案。
他還積極參與到開源項(xiàng)目中,由他開發(fā)完成的計(jì)算方法已經(jīng)被成功應(yīng)用到了機(jī)器學(xué)習(xí)競(jìng)賽(如Kaggle等)中。在業(yè)余時(shí)間,他沉醉于構(gòu)建體育運(yùn)動(dòng)的預(yù)測(cè)模型,要么待在電腦前,要么在運(yùn)動(dòng)。
首先,我要感謝Arun Ross和Pang-Ning Tan教授,以及那些曾經(jīng)啟發(fā)我并激起我在模式分類、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘領(lǐng)域興趣的人。
我還想借此機(jī)會(huì)對(duì)Python社區(qū)和開源包的開發(fā)者表示感謝,他們幫助我創(chuàng)建了一個(gè)用于科學(xué)研究和數(shù)據(jù)科學(xué)的開發(fā)環(huán)境。
在此,還要特別感謝scikit-learn的核心開發(fā)人員。作為此項(xiàng)目的一個(gè)參與者,我有幸與這些極客合作,他們不僅對(duì)機(jī)器學(xué)習(xí)有著深入的了解,同時(shí)還都是非常出色的程序員。
后,我還要感謝所有對(duì)本書感興趣的讀者,也真心希望我的熱情能夠感染大家一起加入到Python與機(jī)器學(xué)習(xí)社區(qū)中來。
目錄
譯者序
推薦序
作者簡(jiǎn)介
審校者簡(jiǎn)介
前言
第1章賦予計(jì)算機(jī)學(xué)習(xí)數(shù)據(jù)的能力1
1.1構(gòu)建智能機(jī)器將數(shù)據(jù)轉(zhuǎn)化為知識(shí)1
1.2機(jī)器學(xué)習(xí)的三種不同方法1
1.2.1通過監(jiān)督學(xué)習(xí)對(duì)未來事件進(jìn)行預(yù)測(cè)2
1.2.2通過強(qiáng)化學(xué)習(xí)解決交互式問題4
1.2.3通過無監(jiān)督學(xué)習(xí)發(fā)現(xiàn)數(shù)據(jù)本身潛在的結(jié)構(gòu)4
1.2.4基本術(shù)語及符號(hào)介紹5
1.3構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的藍(lán)圖6
1.3.1數(shù)據(jù)預(yù)處理6
1.3.2選擇預(yù)測(cè)模型類型并進(jìn)行訓(xùn)練7
1.3.3模型驗(yàn)證與使用未知數(shù)據(jù)進(jìn)行預(yù)測(cè)8
1.4Python在機(jī)器學(xué)習(xí)中的應(yīng)用8
本章小結(jié)9
第2章機(jī)器學(xué)習(xí)分類算法10
2.1人造神經(jīng)元—早期機(jī)器學(xué)習(xí)概覽10
2.2使用Python實(shí)現(xiàn)感知器學(xué)習(xí)算法13
2.3自適應(yīng)線性神經(jīng)元及其學(xué)習(xí)的收斂性19
2.3.1通過梯度下降最小化代價(jià)函數(shù)20
2.3.2使用Python實(shí)現(xiàn)自適應(yīng)線性神經(jīng)元21
2.3.3大規(guī)模機(jī)器學(xué)習(xí)與隨機(jī)梯度下降25
本章小結(jié)29
第3章使用scikit-learn實(shí)現(xiàn)機(jī)器學(xué)習(xí)分類算法30
3.1分類算法的選擇30
3.2初涉scikit-learn的使用30
使用scikit-learn訓(xùn)練感知器31
3.3邏輯斯諦回歸中的類別概率34
3.3.1初識(shí)邏輯斯諦回歸與條件概率34
3.3.2通過邏輯斯諦回歸模型的代價(jià)函數(shù)獲得權(quán)重36
3.3.3使用scikit-learn訓(xùn)練邏輯斯諦回歸模型37
3.3.4通過正則化解決過擬合問題39
3.4使用支持向量機(jī)較大化分類間隔41
3.4.1對(duì)分類間隔較大化的直觀認(rèn)識(shí)41
3.4.2使用松弛變量解決非線性可分問題42
3.4.3使用scikit-learn實(shí)現(xiàn)SVM44
3.5使用核SVM解決非線性問題44
3.6決策樹48
3.6.1較大化信息增益—獲知盡可能的結(jié)果49
3.6.2構(gòu)建決策樹52
3.6.3通過隨機(jī)森林將弱分類器集成為強(qiáng)分類器53
3.7惰性學(xué)習(xí)算法—k-近鄰算法54
本章小結(jié)57
第4章數(shù)據(jù)預(yù)處理—構(gòu)建好的訓(xùn)練數(shù)據(jù)集58
4.1缺失數(shù)據(jù)的處理58
4.1.1將存在缺失值的特征或樣本刪除59
4.1.2缺失數(shù)據(jù)填充60
4.1.3理解scikit-learn預(yù)估器的API60
4.2處理類別數(shù)據(jù)61
4.2.1有序特征的映射61
4.2.2類標(biāo)的編碼62
4.2.3標(biāo)稱特征上的獨(dú)熱編碼63
4.3將數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集64
4.4將特征的值縮放到相同的區(qū)間65
4.5選擇有意義的特征66
4.5.1使用L1正則化滿足數(shù)據(jù)稀疏化67
4.5.2序列特征選擇算法70
4.6通過隨機(jī)森林判定特征的重要性74
本章小結(jié)76
第5章通過降維壓縮數(shù)據(jù)77
5.1無監(jiān)督數(shù)據(jù)降維技術(shù)—主成分分析77
5.1.1總體方差與貢獻(xiàn)方差78
5.1.2特征轉(zhuǎn)換80
5.1.3使用scikit-learn進(jìn)行主成分分析82
5.2通過線性判別分析壓縮無監(jiān)督數(shù)據(jù)84
5.2.1計(jì)算散布矩陣85
5.2.2在新特征子空間上選取線性判別算法87
5.2.3將樣本映射到新的特征空間89
5.2.4使用scikit-learn進(jìn)行LDA分析90
5.3使用核主成分分析進(jìn)行非線性映射91
5.3.1核函數(shù)與核技巧91
5.3.2使用Python實(shí)現(xiàn)核主成分分析94
5.3.3映射新的數(shù)據(jù)點(diǎn)99
5.3.4scikit-learn中的核主成分分析102
本章小結(jié)103
第6章模型評(píng)估與參數(shù)調(diào)優(yōu)實(shí)戰(zhàn)104
6.1基于流水線的工作流104
6.1.1加載威斯康星乳腺癌數(shù)據(jù)集104
6.1.2在流水線中集成數(shù)據(jù)轉(zhuǎn)換及評(píng)估操作105
6.2使用k折交叉驗(yàn)證評(píng)估模型性能106
6.2.1holdout方法106
6.2.2k折交叉驗(yàn)證107
6.3通過學(xué)習(xí)及驗(yàn)證曲線來調(diào)試算法110
6.3.1使用學(xué)習(xí)曲線判定偏差和方差問題110
6.3.2通過驗(yàn)證曲線來判定過擬合與欠擬合112
6.4使用網(wǎng)格搜索調(diào)優(yōu)機(jī)器學(xué)習(xí)模型113
6.4.1使用網(wǎng)絡(luò)搜索調(diào)優(yōu)超參114
6.4.2通過嵌套交叉驗(yàn)證選擇算法115
6.5了解不同的性能評(píng)價(jià)指標(biāo)116
6.5.1讀取混淆矩陣116
6.5.2優(yōu)化分類模型的率和召回率117
6.5.3繪制ROC曲線118
6.5.4多類別分類的評(píng)價(jià)標(biāo)準(zhǔn)121
本章小結(jié)121
第7章集成學(xué)習(xí)—組合不同的模型122
7.1集成學(xué)習(xí)122
7.2實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多數(shù)投票分類器125
7.3評(píng)估與調(diào)優(yōu)集成分類器131
7.4bagging —通過bootstrap樣本構(gòu)建集成分類器135
7.5通過自適應(yīng)boosting提高弱學(xué)習(xí)機(jī)的性能138
本章小結(jié)143
第8章使用機(jī)器學(xué)習(xí)進(jìn)行情感分析144
8.1獲取IMDb電影評(píng)論數(shù)據(jù)集144
8.2詞袋模型簡(jiǎn)介146
8.2.1將單詞轉(zhuǎn)換為特征向量146
8.2.2通過詞頻-逆文檔頻率計(jì)算單詞關(guān)聯(lián)度147
8.2.3清洗文本數(shù)據(jù)148
8.2.4標(biāo)記文檔149
8.3訓(xùn)練用于文檔分類的邏輯斯諦回歸模型151
8.4使用大數(shù)據(jù)—在線算法與外存學(xué)習(xí)152
本章小結(jié)155
第9章在Web應(yīng)用中嵌入機(jī)器學(xué)習(xí)模型156
9.1序列化通過scikit-learn擬合的模型156
9.2使用SQLite數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)158
9.3使用Flask開發(fā)Web應(yīng)用160
9.3.1及時(shí)個(gè)Flask Web應(yīng)用160
9.3.2表單驗(yàn)證及渲染161
9.4將電影分類器嵌入Web應(yīng)用164
9.5在公共服務(wù)器上部署Web應(yīng)用169
本章小結(jié)172
第10章使用回歸分析預(yù)測(cè)連續(xù)型目標(biāo)變量173
10.1簡(jiǎn)單線性回歸模型初探173
10.2波士頓房屋數(shù)據(jù)集174
10.3基于最小二乘法構(gòu)建線性回歸模型178
10.3.1通過梯度下降計(jì)算回歸參數(shù)178
10.3.2使用scikit-learn估計(jì)回歸模型的系數(shù)181
10.4使用RANSAC擬合高魯棒性回歸模型182
10.5線性回歸模型性能的評(píng)估184
10.6回歸中的正則化方法185
10.7線性回歸模型的曲線化-多項(xiàng)式回歸186
10.7.1房屋數(shù)據(jù)集中的非線性關(guān)系建模188
10.7.2使用隨機(jī)森林處理非線性關(guān)系190
本章小結(jié)193
第11章聚類分析——處理無類標(biāo)數(shù)據(jù)194
11.1使用k-means算法對(duì)相似對(duì)象進(jìn)行分組194
11.1.1k-means 196
11.1.2硬聚類與軟聚類198
11.1.3使用肘方法確定簇的數(shù)量199
11.1.4通過輪廓圖定量分析聚類質(zhì)量200
11.2層次聚類203
11.2.1基于距離矩陣進(jìn)行層次聚類204
11.2.2樹狀圖與熱度圖的關(guān)聯(lián)207
11.2.3通過scikit-learn進(jìn)行凝聚聚類208
11.3使用DBSCAN劃分高密度區(qū)域209
本章小結(jié)212
第12章使用人工神經(jīng)網(wǎng)絡(luò)識(shí)別圖像213
12.1使用人工神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜函數(shù)建模213
12.1.1單層神經(jīng)網(wǎng)絡(luò)回顧214
12.1.2多層神經(jīng)網(wǎng)絡(luò)架構(gòu)簡(jiǎn)介215
12.1.3通過正向傳播構(gòu)造神經(jīng)網(wǎng)絡(luò)216
12.2手寫數(shù)字的識(shí)別218
12.2.1獲取MNIST數(shù)據(jù)集218
12.2.2實(shí)現(xiàn)一個(gè)多層感知器222
12.3人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練228
12.3.1計(jì)算邏輯斯諦代價(jià)函數(shù)228
12.3.2通過反向傳播訓(xùn)練神經(jīng)網(wǎng)絡(luò)230
12.4建立對(duì)反向傳播的直觀認(rèn)識(shí)231
12.5通過梯度檢驗(yàn)調(diào)試神經(jīng)網(wǎng)絡(luò)232
12.6神經(jīng)網(wǎng)絡(luò)的收斂性236
12.7其他神經(jīng)網(wǎng)絡(luò)架構(gòu)237
12.7.1卷積神經(jīng)網(wǎng)絡(luò)237
12.7.2循環(huán)神經(jīng)網(wǎng)絡(luò)238
12.8關(guān)于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)239
本章小結(jié)240
第13章使用Theano并行訓(xùn)練神經(jīng)網(wǎng)絡(luò)241
13.1使用Theano構(gòu)建、編譯并運(yùn)行表達(dá)式241
13.1.1什么是Theano242
13.1.2初探Theano243
13.1.3配置Theano244
13.1.4使用數(shù)組結(jié)構(gòu)245
13.1.5整理思路—線性回歸示例247
13.2為前饋神經(jīng)網(wǎng)絡(luò)選擇激勵(lì)函數(shù)250
13.2.1邏輯斯諦函數(shù)概述250
13.2.2通過softmax函數(shù)評(píng)估多類別分類任務(wù)中的類別概率252
13.2.3通過雙曲正切函數(shù)增大輸出范圍252
13.3使用Keras提高訓(xùn)練神經(jīng)網(wǎng)絡(luò)的效率254
本章小結(jié)258
買科技類的書一定到當(dāng)當(dāng)
哼哼哈嘿真不錯(cuò),媽媽再也不怕我不會(huì)寫代碼啦
整體感覺不錯(cuò)
這個(gè)評(píng)論不夠不能提交對(duì)于強(qiáng)迫癥真糾結(jié),以后盡量在別的地方買算了
看過英文版了已經(jīng),現(xiàn)在買個(gè)中文版看著舒舒服服復(fù)習(xí)一下。兩天剛看到65頁。目前發(fā)現(xiàn)了兩個(gè)英文拼寫錯(cuò)誤(還是關(guān)鍵詞,前后都是中文) ,一個(gè)括號(hào)錯(cuò)誤(已經(jīng)影響公式理解那種)。書的質(zhì)量還行,輕省。畢竟著急剛出的書,還是支持一下
整體感覺不錯(cuò),紙質(zhì)好
書還不錯(cuò)。
不錯(cuò)。不錯(cuò)。不錯(cuò)。
不錯(cuò)。不錯(cuò)。不錯(cuò)。
非常好的一本書,作者寫得深入人心。當(dāng)當(dāng)正版書
紙張很好!
紙張很好!
看懂之后做金融可以賺大錢
這本書缺貨,沒有給我送,不過貨到付款,沒有什么損失。這是新出版的書,不應(yīng)該斷貨的嗎。
正版新書,送貨速度超快,包裝也很好。
正版圖書,還沒開始看
錯(cuò)漏百出,不值得看
書很不錯(cuò)。是正版,發(fā)貨速度很快。
發(fā)貨快。物流給力
發(fā)貨快。物流給力
還可以的,不錯(cuò)
這本書錯(cuò)誤太多,實(shí)際的內(nèi)容沒看五頁,遇上倆錯(cuò),真的是坑,服了,西塔和零都印錯(cuò)了 ,關(guān)鍵還是正版,也是可以的
非常喜歡的一本書,在618的時(shí)候買的,買了好多書,很便宜,就是物流稍微慢了一點(diǎn)。
書里的錯(cuò)誤太多,經(jīng)常單詞寫錯(cuò),要是沒有基礎(chǔ)的人看著會(huì)發(fā)瘋;不過寫的東西還算不錯(cuò),比純理論的好理解
紙張、印刷中規(guī)中矩,知識(shí)就是金錢,還是有點(diǎn)小貴的啊!
機(jī)器學(xué)習(xí)跟之前想的不一樣了,和數(shù)學(xué)建模有點(diǎn)像
在人工智能普及的現(xiàn)在,多學(xué)習(xí)一些人工智能技術(shù)是不是更有幫助理解現(xiàn)代科技呢