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