Python機(jī)器學(xué)習(xí)入門
Python是一種解釋型、面向?qū)ο、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言。它具有豐富和強(qiáng)大的模塊(庫),能夠很輕松地把用其他編程語言(尤其是C/C++)編寫的各種模塊聯(lián)結(jié)在一起。這兩年隨著人們對人工智能的關(guān)注越來越多,大家對Python的學(xué)習(xí)熱情也越來越高。在IEEE發(fā)布的編程語言排行榜中,Python已經(jīng)多年排名第一。
這本Python編程與機(jī)器學(xué)習(xí)的入門書,首先介紹了一些Python編程的基礎(chǔ)知識,然后基于圖像識別的機(jī)器學(xué)習(xí)技術(shù)介紹了關(guān)于人工智能的一些知識和概念。讀者可以跟隨本書講解動手編程實現(xiàn)圖像特征檢測、人臉識別、手寫數(shù)字識別等應(yīng)用,從而建立起對人工智能、機(jī)器學(xué)習(xí)、人工神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識。
本書適合對人工智能感興趣但缺乏編程基礎(chǔ)的初學(xué)者閱讀。它能夠幫助讀者更加輕松地進(jìn)入Python編程以及人工智能的世界。
1.這是一本Python編程與機(jī)器學(xué)習(xí)的入門書,基于Python 3;
2.本書分為上下兩篇,上篇主要講 Python 編程的基礎(chǔ)知識,下篇主要基于圖像識別的機(jī)器學(xué)習(xí)技術(shù)介紹了人工智能的知識和概念;
3.本書從人工智能入門的主題切入,用Python編程入門人工智能,針對性強(qiáng)也更加實用;
4.從文字處理到圖像識別,動手編程實現(xiàn)圖像特征檢測、人臉識別、手寫數(shù)字識別等應(yīng)用;
5.全彩印刷。
程晨,科技作家,具有十余年嵌入式開發(fā)經(jīng)驗,編著、翻譯出版開源硬件、3D打印、機(jī)器人、物聯(lián)網(wǎng)領(lǐng)域相關(guān)圖書十余本,國內(nèi)最早的Arduino和3D打印技術(shù)普及圖書都出自他手。他是機(jī)械工業(yè)出版社特聘技術(shù)顧問,曾任北京航空航天大學(xué)軟件學(xué)院特聘講師,參與了清華大學(xué)、北京郵電大學(xué)等多個高校的創(chuàng)新性課程設(shè)計。
上篇 Python 編程入門
第 1章 了解Python 2
1.1 Python的歷史 2
1.1.1 Python的出現(xiàn) 2
1.1.2 Python的發(fā)展 2
1.2 Python的優(yōu)缺點 3
1.2.1 Python的優(yōu)點 3
1.2.2 Python的缺點 3
1.3 Python適用的領(lǐng)域 4
1.4 Python的安裝與使用 4
1.4.1 Python的下載 4
1.4.2 Python的安裝 6
1.4.3 Python的使用 7
1.4.4 編輯器 8
第 2章Python 基礎(chǔ) 12
2.1 數(shù)字 12
2.1.1 數(shù)字計算 12
2.1.2 Python的算術(shù)運(yùn)算符 13
2.2 關(guān)鍵字 14
2.3 變量 14
2.3.1 定義并賦值變量 15
2.3.2 變量命名的約定 15
2.4 程序基本結(jié)構(gòu) 16
2.4.1 if選擇 16
2.4.2 比較 18
2.4.3 邏輯運(yùn)算 19
2.4.4 while循環(huán) 20
2.4.5 while中的break 22
2.4.6 while中的continue 22
2.4.7 while中的else 23
第3章 字符串、列表和字典 25
3.1 字符串 25
3.1.1 字符串的定義 25
3.1.2 “數(shù)字”和“數(shù)字字符”的區(qū)別 26
3.1.3 字符串的操作 26
3.1.4 轉(zhuǎn)義字符 27
3.2 列表 28
3.2.1 列表的定義 28
3.2.2 列表的方法 29
3.2.3 利用循環(huán)枚舉列表中的內(nèi)容 30
3.2.4 使用for循環(huán)順序訪問元素 31
3.3 字典 32
3.4 元組 33
3.4.1 元組的定義 33
3.4.2 多重賦值 33
3.5 擲骰子 34
3.5.1 隨機(jī)數(shù) 34
3.5.2 重復(fù)擲骰子 34
3.5.3 擲兩個骰子 35
3.5.4 大小判斷 36
3.6 異常 37
第4 章 定義和使用函數(shù) 41
4.1 什么是函數(shù) 41
4.1.1 編程中的函數(shù) 41
4.1.2 自定義函數(shù) 41
4.1.3 函數(shù)中的處理 43
4.2 傳遞數(shù)據(jù) 43
4.2.1 將數(shù)據(jù)傳遞給函數(shù) 43
4.2.2 默認(rèn)參數(shù) 44
4.2.3 關(guān)鍵字參數(shù) 44
4.2.4 函數(shù)的返回值 45
4.2.5 多個返回值 46
4.3 變量的作用域 47
4.3.1 局部變量 47
4.3.2 全局變量 48
4.4 內(nèi)置函數(shù) 50
4.4.1 Python中的內(nèi)置函數(shù) 50
4.4.2 input()函數(shù) 53
4.4.3 range()函數(shù) 54
4.4.4 format()函數(shù) 56
4.4.5 format()方法 57__
4.5 猜詞游戲 59
4.5.1 游戲規(guī)則 59
4.5.2 創(chuàng)建單詞庫 60
4.5.3 游戲結(jié)構(gòu) 60
4.5.4 完善函數(shù) 62
4.6 函數(shù)與方法匯總 67
4.6.1 數(shù)學(xué) 67
4.6.2 字符串 67
4.6.3 列表 69
4.6.4 字典 70
4.6.5 類型轉(zhuǎn)換 70
第5章 模塊與類 73
5.1 模塊 73
5.1.1 Python中的模塊 73
5.1.2 使用random模塊 73
5.1.3 自定義模塊 74
5.2 面向?qū)ο?75
5.2.1 定義類 76
5.2.2 類的繼承 77
5.2.3 自定義包含類的模塊 79
5.2.4 Python標(biāo)準(zhǔn)模塊 79
5.3 文件 83
5.3.1 讀取文件 83
5.3.2 讀取大文件 85
5.3.3 寫文件 86
5.3.4 文件操作 87
5.3.5 jieba第三方中文分詞模塊 87
5.3.6 生成器與迭代器 92
5.3.7 詞云 94
5.4 侵蝕化 97
5.5 網(wǎng)絡(luò) 98
5.5.1 urllib.request模塊 98
5.5.2 將HTML 保存到文件 99
下篇 機(jī)器學(xué)習(xí)入門
第6章 圖像處理與特征檢測 102
6.1 顯示圖像 102
6.1.1 安裝第三方模塊 102
6.1.2 計算機(jī)“眼”中的圖像 103__
6.1.3 Numpy模塊 104
6.1.4 在窗口中顯示圖像 106
6.2 圖像處理 107
6.2.1 修改圖像 107
6.2.2 色彩空間 112
6.2.3 識別顏色 114
6.3 圖像特征檢測 117
6.3.1 卷積運(yùn)算 117
6.3.2 垂直邊緣與水平邊緣 119
6.3.3 濾波器 122
6.3.4 邊緣檢測 124
6.3.5 直線檢測 126
6.3.6 圓形檢測 128
第7章 人臉檢測 131
7.1 人工智能和機(jī)器學(xué)習(xí) 131
7.1.1 什么是人工智能 131
7.1.2 什么是機(jī)器學(xué)習(xí) 131
7.2 人工神經(jīng)網(wǎng)絡(luò) 132
7.2.1 什么是人工神經(jīng)網(wǎng)絡(luò) 132
7.2.2 人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 133
7.3 監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí) 134
7.3.1 監(jiān)督學(xué)習(xí) 134
7.3.2 無監(jiān)督學(xué)習(xí) 134
7.3.3 創(chuàng)建并應(yīng)用人工神經(jīng)網(wǎng)絡(luò) 135
7.4 人臉檢測 137
7.4.1 Haar分類器 137
7.4.2 Haar分類器訓(xùn)練的步驟 139
7.4.3 獲取Haar分類器 139
7.4.4 使用OpenCV進(jìn)行人臉檢測 140
第8章 手寫數(shù)字識別 144
8.1 scikit-learn 144
8.2 手寫文字的圖像識別 148
8.2.1 檢查數(shù)據(jù)內(nèi)容 148
8.2.2 創(chuàng)建訓(xùn)練和評估數(shù)據(jù) 150
8.2.3 機(jī)器學(xué)習(xí)的訓(xùn)練 151
8.2.4 機(jī)器學(xué)習(xí)的評估 151
8.2.5 分類器的保存與讀取 157
8.3 使用OpenCV檢測手寫數(shù)字 157
8.3.1 圖像處理 157
8.3.2 數(shù)字識別 159