機(jī)器學(xué)習(xí)算法(原書第2版)
定 價:99 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:(意) 朱塞佩·博納科爾索著
- 出版時間:2020/3/1
- ISBN:9787111645788
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:368
- 紙張:膠版紙
- 版次:2
- 開本:16K
本書介紹了數(shù)據(jù)科學(xué)領(lǐng)域常用的所有重要機(jī)器學(xué)習(xí)算法以及TensorFlow和特征工程等相關(guān)內(nèi)容。涵蓋的算法包括線性回歸、邏輯回歸、支持向量機(jī)、樸素貝葉斯、k均值、隨機(jī)森林等,這些算法可以用于監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)或半監(jiān)督學(xué)習(xí)。在本書中,你將學(xué)會如何使用這些算法來解決所遇到的問題,并了解這些算法的工作方式。本書還將介紹自然語言處理和推薦系統(tǒng),這些內(nèi)容將幫助大家進(jìn)行多種算法的實踐。 閱讀完本書后,面對你所遇到的問題,你將了解如何選擇合適的聚類、分類或回歸的機(jī)器學(xué)習(xí)算法。
與機(jī)器學(xué)習(xí)領(lǐng)域很多偏重于理論的書相比,本書在簡明扼要地闡明基本原理的基礎(chǔ)上,側(cè)重于介紹如何在Python環(huán)境下使用機(jī)器學(xué)習(xí)方法庫,并通過大量實例清晰形象地展示了不同場景下機(jī)器學(xué)習(xí)方法的應(yīng)用。從這個角度來說,本書是一本使機(jī)器學(xué)習(xí)算法通過Python實現(xiàn)真正“落地”的書,而這無疑將給想要或致力于機(jī)器學(xué)習(xí)應(yīng)用的讀者帶來方法理解和實現(xiàn)上的巨大裨益。
書中所有實例都是用Python編寫,使用了scikit-learn機(jī)器學(xué)習(xí)框架、自然語言工具包(NLTK)、Crab、langdetect、Spark(PySpark)、Gensim、Keras和TensorFlow(深度學(xué)習(xí)框架)。這些程序適用于Linux、macOS X和Windows系統(tǒng),Python 2.7和3.3+版本。
本書主要面向希望在預(yù)測分析和機(jī)器學(xué)習(xí)領(lǐng)域建立扎實基礎(chǔ)的機(jī)器學(xué)習(xí)工程師、數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家。
本書介紹了機(jī)器學(xué)習(xí),一個不僅對于IT專業(yè)人員和分析師,而且對于所有想要利用如預(yù)測分析、分類、聚類和自然語言處理等強(qiáng)大技術(shù)的數(shù)據(jù)科學(xué)家和工程師都十分重要的領(lǐng)域。為便于學(xué)習(xí),所有的理論后都附有基于Python的具體實例。
要想對該領(lǐng)域有基本而扎實的理解需要具備一定的數(shù)學(xué)基礎(chǔ),這不僅是解釋算法所必需的,同時還能使讀者理解如何通過調(diào)整超參數(shù)以獲得盡可能高的精度。當(dāng)然,本書不可能覆蓋所有細(xì)節(jié)內(nèi)容,因而對某些內(nèi)容只進(jìn)行了簡單的描述,僅將理論用于結(jié)果解釋。這樣,用戶能有更多的機(jī)會專注于沒有過于復(fù)雜數(shù)學(xué)理論的基礎(chǔ)內(nèi)容,并可以通過文獻(xiàn)來深入研究所有感興趣的內(nèi)容。
所有章節(jié)的閱讀不需要按特定的順序,可以隨意跳過你已經(jīng)知道的內(nèi)容。必要時可以參考解釋某些概念的章節(jié)。作者在此對本書中任何不準(zhǔn)確或筆誤的內(nèi)容表示歉意,同時感謝所有Packt出版社編輯人員的合作和持續(xù)關(guān)注。
讀者對象
本書適合那些希望在預(yù)測分析和機(jī)器學(xué)習(xí)領(lǐng)域建立扎實基礎(chǔ)的機(jī)器學(xué)習(xí)工程師、數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家閱讀。熟悉Python將是一個額外的優(yōu)勢,這將使你能夠充分利用本書。
本書內(nèi)容
第1章介紹了機(jī)器學(xué)習(xí)的世界,解釋了創(chuàng)建智能應(yīng)用程序涉及的最重要方法的基本概念,重點介紹了不同類型的學(xué)習(xí)方法。
第2章解釋了關(guān)于常見機(jī)器學(xué)習(xí)問題的數(shù)學(xué)概念,包括可學(xué)習(xí)性的概念和信息論的內(nèi)容。本章包含一些理論,但如果你從頭開始學(xué)習(xí)本章內(nèi)容,它將非常有用,因為其中深入介紹了大多數(shù)算法中使用的最重要的數(shù)學(xué)工具。
第3章描述了用于預(yù)處理數(shù)據(jù)集、選擇信息量最大的特性和降低原始維度的重要技術(shù)。
第4章描述了線性回歸算法及其優(yōu)化方法,包括Ridge、Lasso和ElasticNet。本章還給出了更高級的模型,可用于解決非線性回歸問題或減輕異常值的影響。
第5章介紹了線性分類的概念,重點介紹了邏輯回歸、感知器、隨機(jī)梯度下降算法和被動攻擊算法。5.7節(jié)介紹了最重要的評價指標(biāo),這些指標(biāo)用于衡量模型的性能并找到最優(yōu)的超參數(shù)集。
第6章解釋了貝葉斯概率理論并描述了廣泛使用的樸素貝葉斯分類器的結(jié)構(gòu)。在6.4節(jié)中,通過一些具體的例子分析了線性和二次判別。
第7章介紹了SVM算法,特別介紹了利用核技巧解決線性和非線性分類問題。本章的最后介紹了支持向量回歸和更復(fù)雜的分類模型。
第8章解釋了分層決策過程的概念,描述了決策樹分類、隨機(jī)森林、bootstrapped和袋裝樹以及投票分類器的概念。
第9章描述了高斯混合、k-NN算法和k-means算法。本章最后介紹了確定最優(yōu)簇數(shù)和度量模型性能的不同方法。
第10章介紹了更復(fù)雜的聚類技術(shù),包括DBSCAN、譜聚類和雙聚類,這些方法可用于非凸數(shù)據(jù)集結(jié)構(gòu)。10.3節(jié)介紹了兩種在線聚類算法(mini-batch k-means聚類和BIRCH)。
第11章在上一章的基礎(chǔ)上介紹更復(fù)雜的聚類算法,還介紹了凝聚聚類和樹形圖的概念。
第12章解釋了推薦系統(tǒng)中最廣泛使用的算法:基于內(nèi)容和用戶的策略、協(xié)同過濾和交替最小二乘法。一個基于Apache Spark的完整示例展示了如何使用交替最小二乘法處理非常大的數(shù)據(jù)集。
第13章解釋了詞袋策略的概念,并介紹了有效處理自然語言數(shù)據(jù)集所需的最重要的技術(shù)(標(biāo)記、詞干抽取、停止詞刪除、標(biāo)注和向量化)。13.4節(jié)還討論了基于Reuters數(shù)據(jù)集的分類器示例。
第14章介紹了主題建模的概念,并描述了最重要的算法,如潛在語義分析(確定性和概率性)和隱性狄利克雷分配。14.2節(jié)和14.3節(jié)分別介紹了詞嵌入和情感分析的問題,闡述了解決這一問題的使用最廣泛的方法。
第15章介紹了深度學(xué)習(xí)的內(nèi)容,解釋了神經(jīng)網(wǎng)絡(luò)和計算圖的概念。15.2節(jié)以多層感知器的具體例子介紹了高級深度學(xué)習(xí)框架Keras。
第16章解釋了最重要的深度學(xué)習(xí)層的基本功能,并以深度卷積網(wǎng)絡(luò)和用于處理時間序列的循環(huán)網(wǎng)絡(luò)(LSTM)的Keras示例來說明。16.4節(jié)簡要介紹了TensorFlow框架,并通過一些示例來展示它的一些基本功能。
第17章解釋了如何定義完整的機(jī)器學(xué)習(xí)管道,重點介紹了每個步驟的特性和缺點。
充分利用本書
為完全理解本書中的所有算法,需要掌握線性代數(shù)、概率論和微積分的基本知識。
所有實例都是用Python編寫的,使用了scikit-learn機(jī)器學(xué)習(xí)框架、自然語言工具包(NLTK)、Crab、langdetect、Spark(PySpark)、Gensim、Keras和TensorFlow(深度學(xué)習(xí)框架)。這些程序適用于Linux、macOS X和Windows系統(tǒng)的Python 2.7及Python 3.3或以上版本。當(dāng)特定框架用于特定任務(wù)時,將提供詳細(xì)的說明和參考。第1~14章的所有示例都可以使用Python 2.7執(zhí)行(而TensorFlow需要Python 3.5或以上版本)。但是,強(qiáng)烈建議讀者使用Python 3.5或以上版本的發(fā)行版。數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)最常見的選擇是Anaconda(https://www.anaconda.com/distribution/),它已經(jīng)包含了所有最重要的軟件包。
下載示例代碼及彩色圖像
本書的示例代碼及所有截圖和樣圖可以從http://www.packtpub.com通過個人賬號下載,也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊并登錄個人賬號下載。
約定使用
本書中使用了一些字體約定。
代碼:表示文本中的代碼、數(shù)據(jù)庫表名、文件夾名、文件名、文件擴(kuò)展名、路徑名、虛
朱塞佩·博納科爾索(Giuseppe Bonaccorso)一家大型跨國公司的數(shù)據(jù)科學(xué)主管。他擁有意大利卡塔尼亞大學(xué)電子工程專業(yè)工程學(xué)碩士學(xué)位,然后在意大利羅馬第二大學(xué)、英國埃塞克斯大學(xué)深造過。在他的職業(yè)生涯中,擔(dān)任過公共管理、軍事、公用事業(yè)、醫(yī)療保健、診斷和廣告等多個業(yè)務(wù)領(lǐng)域的IT工程師,使用Java、Python、Hadoop、Spark、Theano和TensorFlow等多種技術(shù)進(jìn)行過項目開發(fā)與管理。他的主要研究興趣包括人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、數(shù)據(jù)科學(xué)等。
譯者序
前言
第1章機(jī)器學(xué)習(xí)簡介
1.1簡介——經(jīng)典機(jī)器和自適應(yīng)的機(jī)器
1.1.1描述性分析
1.1.2預(yù)測性分析
1.2關(guān)于學(xué)習(xí)
1.2.1監(jiān)督學(xué)習(xí)
1.2.2無監(jiān)督學(xué)習(xí)
1.2.3半監(jiān)督學(xué)習(xí)
1.2.4強(qiáng)化學(xué)習(xí)
1.2.5計算神經(jīng)科學(xué)
1.3超越機(jī)器學(xué)習(xí)——深度學(xué)習(xí)和基于生物啟發(fā)的適應(yīng)系統(tǒng)
1.4機(jī)器學(xué)習(xí)和大數(shù)據(jù)
1.5本章小結(jié)
第2章機(jī)器學(xué)習(xí)的重要元素
2.1數(shù)據(jù)格式
2.2可學(xué)習(xí)性
2.2.1欠擬合和過擬合
2.2.2誤差度量和成本函數(shù)
2.2.3PAC學(xué)習(xí)
2.3統(tǒng)計學(xué)習(xí)方法介紹
2.3.1最大后驗概率學(xué)習(xí)
2.3.2最大似然學(xué)習(xí)
2.4類平衡
2.4.1可置換的重采樣
2.4.2合成少數(shù)類過采樣
2.5信息論的要素
2.5.1熵
2.5.2交叉熵和互信息
2.5.3兩個概率分布的散度
2.6本章小結(jié)
第3章特征選擇與特征工程
3.1scikit-learn的toy數(shù)據(jù)集
3.2創(chuàng)建訓(xùn)練集和測試集
3.3管理分類數(shù)據(jù)
3.4管理缺失特征
3.5數(shù)據(jù)縮放和歸一化
3.6特征選擇和過濾
3.7主成分分析
3.7.1非負(fù)矩陣分解
3.7.2稀疏PCA
3.7.3核PCA
3.8獨立成分分析
3.9原子提取和字典學(xué)習(xí)
3.10使用t-SNE可視化高維數(shù)據(jù)集
3.11本章小結(jié)
第4章回歸算法
4.1線性模型
4.2一個二維的例子
4.3基于scikit-learn的線性回歸和更高維
4.3.1決定系數(shù)
4.3.2可解釋方差
4.3.3回歸的解析表達(dá)
4.4Ridge回歸、Lasso回歸和ElasticNet
4.4.1Ridge回歸
4.4.2Lasso回歸
4.4.3ElasticNet
4.5穩(wěn)健回歸
4.5.1隨機(jī)抽樣一致算法
4.5.2Huber回歸
4.6貝葉斯回歸
4.7多項式回歸
4.8保序回歸
4.9本章小結(jié)
第5章線性分類算法
5.1線性分類
5.2邏輯回歸
5.3實現(xiàn)和優(yōu)化
5.4隨機(jī)梯度下降算法
5.5被動攻擊算法
5.6通過網(wǎng)格搜索找到最優(yōu)超參數(shù)
5.7評估分類的指標(biāo)
5.7.1混淆矩陣
5.7.2精確率
5.7.3召回率
5.7.4F-Beta
5.7.5Kappa系數(shù)
5.7.6分類報告
5.7.7學(xué)習(xí)曲線
5.8ROC曲線
5.9本章小結(jié)
第6章樸素貝葉斯和判別分析
6.1貝葉斯定理
6.2樸素貝葉斯分類器
6.3scikit-learn中的樸素貝葉斯
6.3.1伯努利樸素貝葉斯
6.3.2多項式樸素貝葉斯
6.3.3高斯樸素貝葉斯
6.4判別分析
6.5本章小結(jié)
第7章支持向量機(jī)
7.1線性支持向量機(jī)
7.2scikit-learn實現(xiàn)
7.3基于內(nèi)核的分類
7.3.1徑向基函數(shù)
7.3.2多項式核
7.3.3Sigmoid核
7.3.4自定義核
7.3.5非線性例子
7.4受控支持向量機(jī)
7.5支持向量回歸
7.6半監(jiān)督支持向量機(jī)簡介
7.7本章小結(jié)
第8章決策樹和集成學(xué)習(xí)
8.1二元決策樹
8.1.1二元決策
8.1.2不純度的衡量
8.1.3特征重要度
8.2基于scikit-learn的決策樹分類
8.3決策樹回歸
8.4集成學(xué)習(xí)簡介
8.4.1隨機(jī)森林
8.4.2AdaBoost
8.4.3梯度樹提升
8.4.4投票分類器
8.5本章小結(jié)
第9章聚類原理
9.1聚類基礎(chǔ)
9.2k-NN算法
9.3高斯混合
9.4k-means
9.5基于樣本標(biāo)記的評價方法
9.5.1同質(zhì)性
9.5.2完整性
9.5.3修正蘭德指數(shù)
9.6本章小結(jié)
第10章高級聚類
10.1DBSCAN
10.2譜聚類
10.3在線聚類
10.3.1mini-batch k-means
10.3.2BIRCH
10.4雙聚類
10.5本章小結(jié)
第11章層次聚類
11.1分層策略
11.2凝聚聚類
11.2.1樹形圖
11.2.2scikit-learn中的凝聚聚類
11.2.3連接限制
11.3本章小結(jié)
第12章推薦系統(tǒng)介紹
12.1樸素的基于用戶的系統(tǒng)
12.2基于內(nèi)容的系統(tǒng)
12.3無模式(或基于內(nèi)存的)協(xié)同過濾
12.4基于模型的協(xié)同過濾
12.4.1奇異值分解策略
12.4.2交替最小二乘法策略
12.4.3用Apache Spark MLlib實現(xiàn)交替最小二乘法策略
12.5本章小結(jié)
第13章自然語言處理簡介
13.1NLTK和內(nèi)置語料庫
13.2詞袋策略
13.2.1標(biāo)記
13.2.2停止詞的刪除
13.2.3詞干抽取
13.2.4向量化
13.3詞性
13.4示例文本分類器
13.5本章小結(jié)
第14章NLP中的主題建模與情感分析
14.1主題建模
14.1.1隱性語義分析
14.1.2概率隱性語義分析
14.1.3隱性狄利克雷分配
14.2使用Gensim的Word2vec簡介
14.3情感分析
14.4本章小結(jié)
第15章神經(jīng)網(wǎng)絡(luò)介紹
15.1深度學(xué)習(xí)簡介
15.2基于Keras的MLP
15.3本章小結(jié)
第16章高級深度學(xué)習(xí)模型
16.1深層結(jié)構(gòu)
16.2基于Keras的深度卷積網(wǎng)絡(luò)示例
16.3基于Kears的LSTM網(wǎng)絡(luò)示例
16.4TensorFlow簡介
16.4.1梯度計算
16.4.2邏輯回歸
16.4.3用多層感知器進(jìn)行分類
16.4.4圖像卷積
16.5本章小結(jié)
第17章創(chuàng)建機(jī)器學(xué)習(xí)架構(gòu)
17.1機(jī)器學(xué)習(xí)框架
17.1.1數(shù)據(jù)收集
17.1.2歸一化
17.1.3降維
17.1.4數(shù)據(jù)擴(kuò)充
17.1.5數(shù)據(jù)轉(zhuǎn)換
17.1.6建模、網(wǎng)格搜索和交叉驗證
17.1.7可視化
17.1.8GPU支持
17.1.9分布式架構(gòu)簡介
17.2用于機(jī)器學(xué)習(xí)架構(gòu)的scikit-learn工具
17.2.1管道
17.2.2特征聯(lián)合
17.3本章小結(jié)