Python大規(guī)模機(jī)器學(xué)習(xí)
定 價(jià):89 元
叢書(shū)名:智能系統(tǒng)與技術(shù)叢書(shū)
當(dāng)前圖書(shū)已被 12 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:[荷]巴斯蒂安·賈丁(Bastiaan Sjardin) 等
- 出版時(shí)間:2019/5/1
- ISBN:9787111623144
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)不僅介紹大規(guī)模機(jī)器學(xué)習(xí)的基本概念,還包含豐富的案例研究。書(shū)中所選皆為*實(shí)用的技術(shù)和工具,而對(duì)理論細(xì)節(jié)不進(jìn)行深入討論,旨在提供大規(guī)模機(jī)器學(xué)習(xí)方法(甚至非常規(guī)方法)。不管是初學(xué)者、普通用戶還是專家級(jí)用戶,通過(guò)本書(shū)都能理解并掌握利用Python進(jìn)行大規(guī)模機(jī)器學(xué)習(xí)。為讓讀者快速掌握核心技術(shù),本書(shū)由淺入深講解大量實(shí)例,圖文并茂呈現(xiàn)每一步的操作結(jié)果,幫助讀者更好地掌握大規(guī)模機(jī)器學(xué)習(xí)Python工具。例如:基于Scikit-learn可擴(kuò)展學(xué)習(xí)、 Liblinear和Vowpal Wabbit快速支持向量機(jī)、基于Theano與H2O的大規(guī)模深度學(xué)習(xí)方法、TensorFlow深度學(xué)習(xí)技術(shù)與在線神經(jīng)網(wǎng)絡(luò)方法、大規(guī)模分類和回歸樹(shù)的可擴(kuò)展解決方案、大規(guī)模無(wú)監(jiān)督學(xué)習(xí)(PCA,聚類分析和主題建模等)擴(kuò)展方法、Hadoop和Spark分布式環(huán)境、Spark機(jī)器學(xué)習(xí)實(shí)踐以及Theano和GPU計(jì)算的基礎(chǔ)知識(shí)。
擁有大腦的好處在于:一個(gè)人可以學(xué)習(xí),無(wú)知可以變成有知,點(diǎn)滴知識(shí)可以逐漸匯聚成江海
Douglas Hofstadter
機(jī)器學(xué)習(xí)屬于人工智能范疇,其目的是基于現(xiàn)有數(shù)據(jù)集(訓(xùn)練集)來(lái)尋找函數(shù),以便以盡可能高的正確性預(yù)測(cè)先前未見(jiàn)過(guò)的數(shù)據(jù)集(測(cè)試集)的結(jié)果,這通常以標(biāo)簽和類別的形式(分類問(wèn)題)或以連續(xù)值的形式(回歸問(wèn)題)出現(xiàn)。在實(shí)際應(yīng)用中,機(jī)器學(xué)習(xí)的具體實(shí)例包括預(yù)測(cè)未來(lái)股票價(jià)格,或從一組文件中對(duì)作者性別進(jìn)行分類,等等。本書(shū)介紹最重要的機(jī)器學(xué)習(xí)概念和適合更大數(shù)據(jù)集的方法,并通過(guò)Python的實(shí)際示例向讀者進(jìn)行講解。主要討論監(jiān)督學(xué)習(xí)(分類和回歸),以及適用于更大數(shù)據(jù)集的無(wú)監(jiān)督學(xué)習(xí),比如主成分分析(PCA)、聚類和主題建模。
谷歌、Facebook和優(yōu)步等大型IT公司都聲稱它們成功地大規(guī)模應(yīng)用了這樣的機(jī)器學(xué)習(xí)方法,從而引起世界轟動(dòng)。隨著大數(shù)據(jù)的出現(xiàn)和適用性提高,對(duì)可擴(kuò)展機(jī)器學(xué)習(xí)解決方案的需求呈指數(shù)增長(zhǎng),導(dǎo)致許多其他公司甚至個(gè)人也已經(jīng)開(kāi)始渴望在大數(shù)據(jù)集中挖掘隱藏的相關(guān)性成果。不幸的是,大多數(shù)學(xué)習(xí)算法都不能很好擴(kuò)展,會(huì)在臺(tái)式計(jì)算機(jī)或較大的計(jì)算集群上導(dǎo)致CPU和內(nèi)存過(guò)載。因此,即使大數(shù)據(jù)的炒作高峰已經(jīng)過(guò)去,但可擴(kuò)展機(jī)器學(xué)習(xí)解決方案并不充裕。
坦率地說(shuō),仍然需要解決許多瓶頸問(wèn)題,即便是很難歸類為大數(shù)據(jù)的數(shù)據(jù)集也如此(有的數(shù)據(jù)集高達(dá)2GB甚至更大)。本書(shū)的任務(wù)是提供合適的方法(有時(shí)甚至是非常規(guī)方法),以便大規(guī)模應(yīng)用最強(qiáng)大的開(kāi)源機(jī)器學(xué)習(xí)方法,而無(wú)須昂貴的企業(yè)解決方案或大型計(jì)算集群。通過(guò)本書(shū),讀者可以學(xué)習(xí)使用Python和其他一些可用的解決方案(這些方案與可擴(kuò)展的機(jī)器學(xué)習(xí)流水線能很好地集成)。閱讀這本書(shū)是一次旅程,它將讓你對(duì)機(jī)器學(xué)習(xí)有一個(gè)全新的了解,從而為你開(kāi)始真正的大數(shù)據(jù)分析奠定基礎(chǔ)。
本書(shū)涵蓋的內(nèi)容
第1章以正確視角提出可擴(kuò)展機(jī)器學(xué)習(xí)的問(wèn)題,以便你熟悉本書(shū)中將要使用的工具。
第2章討論采用隨機(jī)梯度下降(SGD)策略減少內(nèi)存消耗,它基于非核心學(xué)習(xí)的主題。另外演示各種數(shù)據(jù)的不同處理技術(shù),例如散列技巧。
第3章介紹流算法,它能夠以支持向量機(jī)的形式發(fā)現(xiàn)非線性。我們將介紹目前Scikit-learn的替代方法,如LIBLINEAR和Vowpal Wabbit,雖然它們以外部shell命令運(yùn)行,但很容易用Python腳本封裝和定向。
第4章為在Theano框架中應(yīng)用深度神經(jīng)網(wǎng)絡(luò)以及使用H2O進(jìn)行大規(guī)模處理提供有用策略。盡管這是個(gè)熱門話題,但成功應(yīng)用它會(huì)相當(dāng)困難,更別說(shuō)提供可擴(kuò)展的解決方案。另外,還將學(xué)習(xí)使用theanets包中的自動(dòng)編碼器實(shí)現(xiàn)無(wú)監(jiān)督的預(yù)訓(xùn)練。
第5章介紹有趣的深度學(xué)習(xí)技術(shù)與在線神經(jīng)網(wǎng)絡(luò)方法。雖然TensorFlow還處于起步階段,但該框架提供了非常不錯(cuò)的機(jī)器學(xué)習(xí)解決方案。此外,還將詳解如何在TensorFlow環(huán)境中使用Keras卷積神經(jīng)網(wǎng)絡(luò)功能。
第6章詳解隨機(jī)森林、梯度增強(qiáng)和XGboost的可擴(kuò)展解決方案。CART是分類和回歸樹(shù)的縮寫(xiě),它是一種通常應(yīng)用于集成方法框架的機(jī)器學(xué)習(xí)方法。我們還將演示使用H2O的大規(guī)模應(yīng)用實(shí)例。
第7章深入介紹無(wú)監(jiān)督學(xué)習(xí)、PCA、聚類分析和主題建模方法,并使用正確方法對(duì)它們進(jìn)行擴(kuò)展。
第8章學(xué)習(xí)如何在虛擬機(jī)環(huán)境中設(shè)置Spark,以便從單臺(tái)機(jī)器轉(zhuǎn)移到網(wǎng)絡(luò)計(jì)算范例。Python很容易在機(jī)器集群上集成并能增強(qiáng)我們的工作效率,因此很容易利用Hadoop集群的能力。
第9章演示使用Spark處理數(shù)據(jù)和在大數(shù)據(jù)集上構(gòu)建預(yù)測(cè)模型的所有重要環(huán)節(jié)。
附錄介紹GPU和Theano,包括Theano和GPU計(jì)算的基礎(chǔ)知識(shí)。如果你的系統(tǒng)允許,還將幫助讀者學(xué)習(xí)相關(guān)安裝和環(huán)境配置,以便在GPU上使用Theano。
本書(shū)要求
運(yùn)行書(shū)中代碼示例需要在macOS、Linux或Microsoft Windows上安裝Python 27或更高版本。
書(shū)中示例經(jīng)常使用Python的基本功能庫(kù),例如SciPy、NumPy、Scikitlearn和StatsModels,并且在某種程度上使用matplotlib和pandas進(jìn)行科學(xué)和統(tǒng)計(jì)計(jì)算。也會(huì)使用稱為H2O的非核心云計(jì)算應(yīng)用程序。
本書(shū)需要Jupyter及其Python內(nèi)核驅(qū)動(dòng)的Notebooks,本書(shū)使用最新版本41。
第1章將為設(shè)置Python環(huán)境、核心庫(kù)以及全部必需工具提供所有分步說(shuō)明和某些技巧。
本書(shū)讀者
本書(shū)適合數(shù)據(jù)科學(xué)從業(yè)者、開(kāi)發(fā)人員以及計(jì)劃使用大型復(fù)雜數(shù)據(jù)集的讀者。 我們努力讓本書(shū)擁有盡可能好的可讀性,以便適合更多讀者。 考慮到本書(shū)主題非常先進(jìn),我們建議讀者先熟悉基本的機(jī)器學(xué)習(xí)概念,如分類和回歸、誤差最小化函數(shù)和交叉驗(yàn)證等,但不嚴(yán)格要求讀者必須這樣做。本書(shū)假設(shè)讀者了解Python、Jupyter Notebooks和命令行運(yùn)行,并有一定的數(shù)學(xué)基礎(chǔ),能夠掌握書(shū)中的各種大型解決方案背后的概念。本書(shū)寫(xiě)作風(fēng)格也適合使用其他語(yǔ)言(R、Java和MATLAB)的程序員。 理想情況下,非常適合(但不限于)熟悉機(jī)器學(xué)習(xí)并有興趣使用Python的數(shù)據(jù)科學(xué)家,因?yàn)橄啾扔赗或MATLAB而言,Python在計(jì)算、內(nèi)存和I/O方面有優(yōu)勢(shì)。
排版約定
書(shū)中代碼塊設(shè)置如下:
大多數(shù)示例中使用Jupyter Notebooks,所以希望在包含代碼塊的單元中始終帶有輸入(標(biāo)記為In:),并通常帶有輸出(標(biāo)記為Out:)。在你的計(jì)算機(jī)上,只需輸入In:后面的代碼,并檢查結(jié)果是否與Out:后面的內(nèi)容相對(duì)應(yīng):
在終端命令行中給出命令時(shí),會(huì)帶有前綴$>,否則,如果是Python REPL,則以>>>開(kāi)頭:
表示警告或重要說(shuō)明。
表示提示和技巧。
下載示例代碼及彩色圖像
本書(shū)的示例代碼及所有截圖和樣圖,可以從http://wwwpacktpubcom通過(guò)個(gè)人賬號(hào)下載,也可以訪問(wèn)華章圖書(shū)官網(wǎng)http://wwwhzbookcom,通過(guò)注冊(cè)并登錄個(gè)人賬號(hào)下載。
還可以從GitHub獲取本書(shū)代碼:
https://githubcom/PacktPublishing/LargeScaleMachineLearningWithPython。
Bastiaan Sjardin是一位具有人工智能和數(shù)學(xué)背景的數(shù)據(jù)科學(xué)家和公司創(chuàng)始人。他獲得萊頓大學(xué)和麻省理工學(xué)院(MIT)校園課程聯(lián)合培養(yǎng)的認(rèn)知科學(xué)碩士學(xué)位。在過(guò)去五年中,他從事過(guò)廣泛的數(shù)據(jù)科學(xué)和人工智能項(xiàng)目。他是密歇根大學(xué)社會(huì)網(wǎng)絡(luò)分析課程Coursera和約翰斯·霍普金斯大學(xué)機(jī)器學(xué)習(xí)實(shí)踐課程的?。他擅長(zhǎng)Python和R編程語(yǔ)言。目前,他是Quandbee(http://wwwquandbeecom)的聯(lián)合創(chuàng)始人,該公司主要提供大規(guī)模機(jī)器學(xué)習(xí)和人工智能應(yīng)用。
Luca Massaron是一位數(shù)據(jù)科學(xué)家和市場(chǎng)研究總監(jiān),擅長(zhǎng)多元統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)和客戶洞察力研究,在解決實(shí)際問(wèn)題和應(yīng)用推理、統(tǒng)計(jì)、數(shù)據(jù)挖掘和算法來(lái)為用戶創(chuàng)造價(jià)值方面有十多年經(jīng)驗(yàn)。從成為意大利網(wǎng)絡(luò)觀眾分析的先驅(qū),到躋身前十名的Kaggler,他一直對(duì)數(shù)據(jù)分析充滿熱情,還向?qū)I(yè)人士和普通大眾展示數(shù)據(jù)驅(qū)動(dòng)知識(shí)發(fā)現(xiàn)的潛力,相比不必要的復(fù)雜性,他更喜歡簡(jiǎn)潔。他相信僅僅通過(guò)基本操作就可以在數(shù)據(jù)科學(xué)中收獲很多東西。
Alberto Boschetti是一位具有信號(hào)處理和統(tǒng)計(jì)專業(yè)知識(shí)的數(shù)據(jù)科學(xué)家。他獲得電信工程博士學(xué)位,目前在倫敦生活和工作。在其工作項(xiàng)目中,他面臨過(guò)從自然語(yǔ)言處理(NLP)和機(jī)器學(xué)習(xí)到分布式處理的挑戰(zhàn)。 他在工作中充滿熱情,始終努力了解數(shù)據(jù)科學(xué)的*新發(fā)展,他喜歡參加聚會(huì)、會(huì)議和其他活動(dòng)。
譯者序
前言
作者簡(jiǎn)介
審校者簡(jiǎn)介
第1章邁向可擴(kuò)展性的第一步1
11詳細(xì)解釋可擴(kuò)展性1
111大規(guī)模實(shí)例3
112介紹Python4
113使用Python進(jìn)行向上擴(kuò)展4
114使用Python進(jìn)行向外擴(kuò)展5
12Python用于大規(guī)模機(jī)器學(xué)習(xí)6
121選擇Python 2還是Python 36
122安裝Python7
123逐步安裝7
124安裝軟件包8
125軟件包升級(jí)9
126科學(xué)計(jì)算發(fā)行版10
127Jupyter/IPython介紹11
13Python包13
131NumPy14
132SciPy14
133pandas14
134Scikitlearn15
135小結(jié)21
第2章Scikitlearn中的可擴(kuò)展學(xué)習(xí)22
21非核心學(xué)習(xí)22
211選擇子采樣23
212一次優(yōu)化一個(gè)實(shí)例24
213構(gòu)建非核心學(xué)習(xí)系統(tǒng)25
22流化源數(shù)據(jù)25
221處理真實(shí)數(shù)據(jù)集26
222第一個(gè)示例流化共享單車數(shù)據(jù)集28
223使用pandas I/O工具30
224使用數(shù)據(jù)庫(kù)31
225關(guān)注實(shí)例排序35
23隨機(jī)學(xué)習(xí)37
231批處理梯度下降37
232隨機(jī)梯度下降40
233Scikitlearn的SGD實(shí)現(xiàn)40
234定義SGD學(xué)習(xí)參數(shù)42
24數(shù)據(jù)流的特征管理43
241描述目標(biāo)46
242哈希技巧49
243其他基本變換51
244流測(cè)試和驗(yàn)證52
245使用SGD52
25小結(jié)56
第3章實(shí)現(xiàn)快速SVM57
31測(cè)試數(shù)據(jù)集58
311共享單車數(shù)據(jù)集58
312森林覆蓋類型數(shù)據(jù)集58
32支持向量機(jī)59
321hinge loss及其變形64
322Scikitlearn的SVM實(shí)現(xiàn)65
323探究通過(guò)子采樣改善非線性SVM68
324使用SGD實(shí)現(xiàn)大規(guī)模SVM70
33正則化特征選擇77
34SGD中的非線性78
35超參數(shù)調(diào)整82
36小結(jié)96
第4章神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)97
41神經(jīng)網(wǎng)絡(luò)架構(gòu)98
411神經(jīng)網(wǎng)絡(luò)如何學(xué)習(xí)106
412選擇正確的架構(gòu)110
413使用神經(jīng)網(wǎng)絡(luò)111
414sknn并行化111
42神經(jīng)網(wǎng)絡(luò)和正則化113
43神經(jīng)網(wǎng)絡(luò)和超參數(shù)優(yōu)化115
44神經(jīng)網(wǎng)絡(luò)和決策邊界117
45用H2O進(jìn)行規(guī);疃葘W(xué)習(xí)120
451用H2O進(jìn)行大規(guī)模深度學(xué)習(xí)121
452H2O上的網(wǎng)格搜索124
46深度學(xué)習(xí)和無(wú)監(jiān)督預(yù)訓(xùn)練126
47使用theanets進(jìn)行深度學(xué)習(xí)126
48自動(dòng)編碼器和無(wú)監(jiān)督學(xué)習(xí)128
49小結(jié)131
第5章用TensorFlow進(jìn)行深度學(xué)習(xí)132
51TensorFlow安裝134
52在TensorFlow上使用SkFlow進(jìn)行機(jī)器學(xué)習(xí)140
53安裝Keras和TensorFlow148
54在TensorFlow中通過(guò)Keras實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)152
541卷積層153
542池化層153
543全連接層154
55增量CNN方法156
56GPU計(jì)算156
57小結(jié)159
第6章大規(guī)模分類和回歸樹(shù)160
61bootstrap聚合162
62隨機(jī)森林和極端隨機(jī)森林163
63隨機(jī)搜索實(shí)現(xiàn)快速參數(shù)優(yōu)化167
64CART和boosting172
65XGBoost179
651XGBoost回歸181
652XGBoost流化大型數(shù)據(jù)集184
653XGBoost模型存儲(chǔ)185
66用H2O實(shí)現(xiàn)非核心CART185
661H2O上的隨機(jī)森林和網(wǎng)格搜索186
662H2O上的隨機(jī)梯度增強(qiáng)和網(wǎng)格搜索188
67小結(jié)191
第7章大規(guī)模無(wú)監(jiān)督學(xué)習(xí)192
71無(wú)監(jiān)督方法192
72特征分解:PCA193
721隨機(jī)化PCA199
722增量PCA200
723稀疏PCA201
73使用H2O的PCA202
74K-均值聚類算法203
741初始化方法206
742K-均值假設(shè)206
743選擇最佳K209
744擴(kuò)展K-均值算法:小批量212
75用H2O實(shí)現(xiàn)K-均值216
76LDA218
77小結(jié)226
第8章分布式環(huán)境Hadoop和Spark227
81從單機(jī)到集群227
82設(shè)置VM230
821VirtualBox230
822Vagrant232
823使用VM232
83Hadoop生態(tài)系統(tǒng)234
831架構(gòu)234
832HDFS235
833MapReduce242
834YARN250
84Spark250
85小結(jié)260
第9章Spark機(jī)器學(xué)習(xí)實(shí)踐261
91為本章設(shè)置虛擬機(jī)261
92跨集群節(jié)點(diǎn)共享變量262
921廣播只讀變量262
922累加器只寫(xiě)變量264
923廣播和累加器的示例265
93Spark的數(shù)據(jù)預(yù)處理267
931JSON文件和Spark DataFrame268
932處理缺失數(shù)據(jù)270
933在內(nèi)存中分組和創(chuàng)建表271
934將預(yù)處理的DataFrame或RDD寫(xiě)入磁盤273
935使用Spark DataFrame274
94Spark機(jī)器學(xué)習(xí)276
941Spark處理KDD99數(shù)據(jù)集277
942讀取數(shù)據(jù)集277
943特征工程280
944訓(xùn)練學(xué)習(xí)器284
945評(píng)估學(xué)習(xí)器的表現(xiàn)286
946機(jī)器學(xué)習(xí)管道的威力286
947手動(dòng)優(yōu)化288
948交叉驗(yàn)證291
95小結(jié)293
附錄介紹GPU和Theano294