機(jī)器學(xué)習(xí)入門:Python語(yǔ)言實(shí)現(xiàn)
定 價(jià):89 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[美]奧斯瓦爾德·坎佩薩托(Oswald Campesato)
- 出版時(shí)間:2021/11/1
- ISBN:9787111695240
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書旨在為讀者提供與機(jī)器學(xué)習(xí)有關(guān)Python3的基本編程概念。前4章快速介紹了Python 3、NumPy和Pandas。第5章介紹了機(jī)器學(xué)習(xí)的基本概念。第6章主要介紹機(jī)器學(xué)習(xí)分類器,例如邏輯回歸、kNN、決策樹(shù)、隨機(jī)森林和SVM。第7章介紹了自然語(yǔ)言處理和強(qiáng)化學(xué)習(xí)。本書還提供了基于Keras的代碼示例作為理論討論的補(bǔ)充。此外還為正則表達(dá)式、Keras和TensorFlow 2提供了單獨(dú)的附錄。
本書旨在為讀者提供與機(jī)器學(xué)習(xí)有關(guān)Python3的基本編程概念。前4章快速介紹了Python 3、NumPy和Pandas。第5章介紹了機(jī)器學(xué)習(xí)的基本概念。第6章主要介紹機(jī)器學(xué)習(xí)分類器,例如邏輯回歸、kNN、決策樹(shù)、隨機(jī)森林和SVM。第7章介紹了自然語(yǔ)言處理和強(qiáng)化學(xué)習(xí)。本書還提供了基于Keras的代碼示例作為理論討論的補(bǔ)充。此外還為正則表達(dá)式、Keras和TensorFlow 2提供了單獨(dú)的附錄。
本書的價(jià)值主張是什么
本書致力于在篇幅允許的范圍內(nèi)提供盡可能充分、翔實(shí)的Python和機(jī)器學(xué)習(xí)的相關(guān)內(nèi)容。
充分利用本書
一些程序員善于從文章中學(xué)習(xí),另一些程序員善于從示例代碼(大量代碼)中學(xué)習(xí),這意味著沒(méi)有一種通用學(xué)習(xí)方式可以供所有人使用。
此外,一些程序員希望先運(yùn)行代碼,看看代碼產(chǎn)生了什么結(jié)果,然后再回到代碼來(lái)深入研究細(xì)節(jié)(另一些程序員則使用相反的方法)。
所以本書有各種類型的代碼示例:有短有長(zhǎng),還有一些則是基于早先的代碼示例“構(gòu)建”的。
為什么不包含軟件安裝說(shuō)明
很多網(wǎng)站都有針對(duì)不同平臺(tái)的Python安裝說(shuō)明。本書避免重復(fù)這些說(shuō)明,而把這些篇幅用于介紹Python相關(guān)材料。總之,本書試圖避免“灌輸”內(nèi)容,并避免出現(xiàn)從網(wǎng)上可輕易獲得的設(shè)置步驟。
本書的代碼是怎樣被測(cè)試的
本書的代碼示例已經(jīng)在安裝了OS X 10.8.5的Macbook Pro上的Python 3.6.8版本中進(jìn)行了測(cè)試。
閱讀本書,需要先了解什么
有用的先決條件是一定要熟悉一種腳本語(yǔ)言,例如Perl或PHP。其他編程語(yǔ)言(例如Java)的知識(shí)也會(huì)有所幫助,因?yàn)闀?huì)從中接觸到編程概念和結(jié)構(gòu)。所掌握的技術(shù)知識(shí)越少,則越需要更多的努力才能理解本書涉及的各個(gè)主題。機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)很有幫助,但不是必需的。
如果想確保能夠掌握本書的內(nèi)容,可以先瀏??覽一些代碼示例,以便于了解哪些是熟悉的內(nèi)容,哪些是新知識(shí)。
為什么本書沒(méi)有那么厚
本書的目標(biāo)讀者涵蓋從編程語(yǔ)言的初學(xué)者到中級(jí)程序員。在編寫過(guò)程中,我盡量滿足目標(biāo)讀者準(zhǔn)備自學(xué)更多Python高級(jí)特性的需要。
為什么各章中有那么多代碼示例
不論哪種形式的論述,首要原則就是“行勝于言”。盡管并未囿于該規(guī)則的字面意思,但本書的確以此作為目標(biāo):先展示,再解釋。你可以通過(guò)一個(gè)簡(jiǎn)單的實(shí)驗(yàn)來(lái)自己判斷“先展示,再解釋”是否在本書中得到貫徹:當(dāng)讀到本書中的代碼示例和配套的圖形展示時(shí),請(qǐng)確定其是否更有效地呈現(xiàn)了視覺(jué)效果或展示了相關(guān)主題。俗話說(shuō)得好,一圖勝千言,本書將盡可能地做到圖文并茂。
補(bǔ)充文件是否可以取代本書
補(bǔ)充文件包含了所有代碼示例,避免了因手動(dòng)輸入代碼到文本文件產(chǎn)生錯(cuò)誤而消耗的時(shí)間和精力。但是本書提供了相應(yīng)的配套解釋,有助于讀者理解代碼示例一。
本書是否包含生產(chǎn)級(jí)代碼示例
代碼示例展示了Python 3針對(duì)機(jī)器學(xué)習(xí)的一些有用特性。對(duì)于本書,相比于編寫更緊湊的代碼(更難于理解且更容易出現(xiàn)錯(cuò)誤),我們更注重代碼的清晰度。如果讀者決定在生產(chǎn)環(huán)境中使用本書中的任何代碼,則需要按照你自有的代碼庫(kù)進(jìn)行相同的嚴(yán)格分析。
奧斯瓦爾德·坎佩薩托(Oswald Campesato)專門研究深度學(xué)習(xí)、Java、Android和TensorFlow。他是25本書的作者/合著者,其中包括TensorFlow Pocket Primer、Artificial Intelligence, Machine Learning, and Deep Learning和Python Pocket Primer。
譯者序
前言
第1章 Python 3簡(jiǎn)介1
1.1 Python相關(guān)工具與安裝1
1.1.1 Python相關(guān)工具1
1.1.2 安裝Python3
1.1.3 設(shè)置PATH環(huán)境變量(僅Windows)3
1.2 Python編程基礎(chǔ)3
1.2.1 Python交互式解釋器3
1.2.2 Python基礎(chǔ)語(yǔ)法4
1.2.3 以模塊形式保存代碼6
1.2.4 Python中的一些標(biāo)準(zhǔn)模塊7
1.2.5 help(?)和dir(?)函數(shù)7
1.2.6 編譯時(shí)和運(yùn)行時(shí)的代碼檢查8
1.3 Python中的簡(jiǎn)單數(shù)據(jù)類型9
1.3.1 數(shù)字9
1.3.2 字符串12
1.3.3 處理日期19
1.4 Python中的異常處理21
1.4.1 處理用戶輸入22
1.4.2 命令行參數(shù)24
1.5 小結(jié)25
第2章 條件邏輯、循環(huán)和函數(shù)26
2.1 Python中的條件邏輯26
2.1.1 Python的保留關(guān)鍵字27
2.1.2 Python運(yùn)算符的優(yōu)先級(jí)28
2.1.3 比較運(yùn)算符和布爾運(yùn)算符28
2.2 Python中的變量和參數(shù)29
2.2.1 局部變量和全局變量29
2.2.2 變量的作用域29
2.2.3 引用傳遞和值傳遞31
2.2.4 實(shí)參和形參31
2.3 在Python中使用循環(huán)32
2.3.1 Python中的for循環(huán)32
2.3.2 Python中的while循環(huán)39
2.4 Python中的用戶自定義函數(shù)41
2.4.1 在函數(shù)中設(shè)定默認(rèn)值42
2.4.2 具有可變參數(shù)的函數(shù)42
2.4.3 lambda表達(dá)式43
2.5 遞歸44
2.5.1 計(jì)算階乘值44
2.5.2 計(jì)算斐波那契數(shù)45
2.5.3 計(jì)算兩個(gè)數(shù)的公約數(shù)45
2.5.4 計(jì)算兩個(gè)數(shù)的小公倍數(shù)46
2.6 小結(jié)47
第3章 Python數(shù)據(jù)類型48
3.1 列表48
3.1.1 列表和基本操作48
3.1.2 列表中的表達(dá)式53
3.1.3 連接字符串列表53
3.1.4 Python中的range(?)函數(shù)54
3.1.5 數(shù)組和append(?)函數(shù)55
3.1.6 使用列表和split(?)函數(shù)56
3.1.7 對(duì)列表中的單詞計(jì)數(shù)56
3.1.8 遍歷成對(duì)的列表57
3.1.9 其他與列表相關(guān)的函數(shù)57
3.1.10 棧和隊(duì)列59
3.1.11 使用向量60
3.1.12 使用矩陣61
3.1.13 使用NumPy庫(kù)處理矩陣61
3.2 元組(不可變列表)62
3.3 集合63
3.4 字典64
3.4.1 創(chuàng)建字典及字典中的基本操作65
3.4.2 字典的相關(guān)函數(shù)和方法67
3.4.3 字典的格式67
3.4.4 有序字典67
3.5 Python中的其他數(shù)據(jù)類型68
3.5.1 Python中的其他序列類型68
3.5.2 Python中的可變類型和不可變類型69
3.5.3 type(?)函數(shù)70
3.6 小結(jié)70
第4章 NumPy和Pandas介紹71
4.1 NumPy71
4.1.1 NumPy簡(jiǎn)介71
4.1.2 NumPy數(shù)組72
4.1.3 使用NumPy數(shù)組的示例73
4.2 子范圍77
4.2.1 使用向量的“-1”子范圍77
4.2.2 使用數(shù)組的“-1”子范圍77
4.3 NumPy中其他有用的方法78
4.3.1 數(shù)組和向量操作79
4.3.2 NumPy和點(diǎn)積79
4.3.3 NumPy和向量的“范數(shù)”80
4.3.4 NumPy和向量的乘積81
4.3.5 NumPy和reshape(?)方法82
4.3.6 計(jì)算均值和標(biāo)準(zhǔn)差83
4.4 Pandas84
4.5 Pandas DataFrame的各種操作89
4.5.1 合并Pandas DataFrame89
4.5.2 使用Pandas DataFrame進(jìn)行數(shù)據(jù)操作90
4.5.3 Pandas DataFrame和CSV文件93
4.5.4 Pandas DataFrame和Excel電子表格95
4.5.5 選擇、添加和刪除DataFrame中的列96
4.5.6 Pandas DataFrame和散點(diǎn)圖97
4.5.7 Pandas DataFrame和簡(jiǎn)單統(tǒng)計(jì)98
4.5.8 Pandas中簡(jiǎn)單有用的命令98
4.6 小結(jié)100
第5章 機(jī)器學(xué)習(xí)101
5.1 什么是機(jī)器學(xué)習(xí)101
5.1.1 機(jī)器學(xué)習(xí)算法的類型103
5.1.2 特征工程、特征選擇和特征提取105
5.1.3 降維106
5.2 使用數(shù)據(jù)集107
5.2.1 訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)108
5.2.2 什么是交叉驗(yàn)證108
5.2.3 正則化108
5.2.4 偏差-方差的權(quán)衡109
5.2.5 模型性能的衡量指標(biāo)109
5.3 線性回歸111
5.3.1 線性回歸與曲線擬合112
5.3.2 何時(shí)的解是準(zhǔn)確值112
5.3.3 什么是多元分析112
5.3.4 其他類型的回歸113
5.3.5 平面中對(duì)直線的處理(選讀)113
5.4 求解線性回歸問(wèn)題的示例116
5.4.1 使用NumPy和Matplotlib繪制散點(diǎn)圖116
5.4.2 MSE119
5.4.3 Keras的線性回歸123
5.5 小結(jié)126
第6章 機(jī)器學(xué)習(xí)中的分類器127
6.1 分類器127
6.1.1 什么是分類127
6.1.2 線性分類器129
6.1.3 kNN129
6.1.4 決策樹(shù)130
6.1.5 隨機(jī)森林133
6.1.6 支持向量機(jī)134
6.1.7 貝葉斯分類器134
6.1.8 訓(xùn)練分類器136
6.1.9 評(píng)估分類器137
6.2 激活函數(shù)137
6.2.1 什么是激活函數(shù)137
6.2.2 常見(jiàn)的激活函數(shù)139
6.2.3 ReLU和ELU激活函數(shù)140
6.2.4 sigmoid、softmax和tanh的相似之處141
6.2.5 sigmoid、softmax和hardmax的區(qū)