內容簡介
機器學習正在迅速改變我們的世界。我們幾乎每天都會讀到機器學習如何改變日常的生活。如果你在淘寶或者京東這樣的電子商務網站購買商品,或者在愛奇藝或是騰訊視頻這樣的視頻網站觀看節目,甚至只是進行一次百度搜尋,就已經觸碰到了機器學習的套用。使用這些服務的用戶會產生數據,這些數據會被收集,在進行預處理之後用來訓練模型,而模型會通過這些數據來提供更好的用戶體驗。此外,目前還有很多使用機器學習技術的產品或服務即將在我們的生活當中普及,如能夠解放雙手的無人駕駛汽車、聰明伶俐的智慧型家居產品、善解人意的導購機器人等。可以說要想深入機器學習的套用開發當中,現在就是一個非常理想的時機。
本書內容涵蓋了有監督學習、無監督學習、模型最佳化、自然語言處理等機器學習領域所必須掌握的知識,從內容結構上非常注重知識的實用性和可操作性。全書採用由淺入深、循序漸進的講授方式,完全遵循和尊重初學者對機器學習知識的認知規律。本書適合有一定程式設計語言和算法基礎的讀者學習使用。
作者簡介
段小手,君兮科技創始人,畢業於北京大學。具有10餘年國內一線網際網路/電子商務公司項目管理經驗。其負責的跨境電子商務項目曾獲得“國家發改委電子商務示範項目”“中關村現代服務業試點項目”“北京市信息化基礎設施提升項目”“北京市外貿綜合公共平台”等專項政策支持。目前重點研究領域為機器學習和深度學習等方面。
目錄
目 錄
第1章 概 述
1.1 什麼是機器學習——從一個小故事開始 / 002
1.2 機器學習的一些套用場景——蝙蝠公司的業務單元 / 003
1.3 機器學習應該如何入門——世上無難事 / 005
1.4 有監督學習與無監督學習 / 007
1.5 機器學習中的分類與回歸 / 008
1.6 模型的泛化、過擬合與欠擬合 / 008
1.7 小結 / 009
第2章 基於Python語言的環境配置
2.1 Python的下載和安裝 / 012
2.2 Jupyter Notebook的安裝與使用方法 / 013
2.2.1 使用pip進行Jupyter Notebook的下載和安裝 / 013
2.2.2 運行Jupyter Notebook / 014
2.2.3 Jupyter Notebook的使用方法 / 015
2.3 一些必需庫的安裝及功能簡介 / 017
2.3.1 Numpy——基礎科學計算庫 / 017
2.3.2 Scipy——強大的科學計算工具集 / 018
2.3.3 pandas——數據分析的利器 / 019
2.3.4 matplotlib——畫出優美的圖形 / 020
深入淺出Python 機器學習
VIII
2.4 scikit-learn——非常流行的Python機器學習庫 / 021
2.5 小結 / 022
第3章 K最近鄰算法——近朱者赤,近墨者黑
3.1 K最近鄰算法的原理 / 024
3.2 K最近鄰算法的用法 / 025
3.2.1 K最近鄰算法在分類任務中的套用 / 025
3.2.2 K最近鄰算法處理多元分類任務 / 029
3.2.3 K最近鄰算法用於回歸分析 / 031
3.3 K最近鄰算法項目實戰——酒的分類 / 034
3.3.1 對數據集進行分析 / 034
3.3.2 生成訓練數據集和測試數據集 / 036
3.3.3 使用K最近鄰算法進行建模 / 038
3.3.4 使用模型對新樣本的分類進行預測 / 039
3.4 小結 / 041
第4章 廣義線性模型——“耿直”的算法模型
4.1 線性模型的基本概念 / 044
4.1.1 線性模型的一般公式 / 044
4.1.2 線性模型的圖形表示 / 045
4.1.3 線性模型的特點 / 049
4.2 最基本的線性模型——線性回歸 / 050
4.2.1 線性回歸的基本原理 / 050
4.2.2 線性回歸的性能表現 / 051
4.3 使用L2正則化的線性模型——嶺回歸 / 053
4.3.1 嶺回歸的原理 / 053
4.3.2 嶺回歸的參數調節 / 054
4.4 使用L1正則化的線性模型——套索回歸 / 058
4.4.1 套索回歸的原理 / 058
4.4.2 套索回歸的參數調節 / 059
4.4.3 套索回歸與嶺回歸的對比 / 060
目
錄
IX
4.5 小結 / 062
第5章 樸素貝葉斯——打雷啦,收衣服啊
5.1 樸素貝葉斯基本概念 / 064
5.1.1 貝葉斯定理 / 064
5.1.2 樸素貝葉斯的簡單套用 / 064
5.2 樸素貝葉斯算法的不同方法 / 068
5.2.1 貝努利樸素貝葉斯 / 068
5.2.2 高斯樸素貝葉斯 / 071
5.2.3 多項式樸素貝葉斯 / 072
5.3 樸素貝葉斯實戰——判斷腫瘤是良性還是惡性 / 075
5.3.1 對數據集進行分析 / 076
5.3.2 使用高斯樸素貝葉斯進行建模 / 077
5.3.3 高斯樸素貝葉斯的學習曲線 / 078
5.4 小結 / 080
第6章 決策樹與隨機森林——會玩讀心術的算法
6.1 決策樹 / 082
6.1.1 決策樹基本原理 / 082
6.1.2 決策樹的構建 / 082
6.1.3 決策樹的優勢和不足 / 088
6.2 隨機森林 / 088
6.2.1 隨機森林的基本概念 / 089
6.2.2 隨機森林的構建 / 089
6.2.3 隨機森林的優勢和不足 / 092
6.3 隨機森林實例——要不要和相親對象進一步發展 / 093
6.3.1 數據集的準備 / 093
6.3.2 用get_dummies處理數據 / 094
6.3.3 用決策樹建模並做出預測 / 096
6.4 小結 / 098
第7章 支持向量機SVM——專治線性不可分
7.1 支持向量機SVM基本概念 / 100
7.1.1 支持向量機SVM的原理 / 100
7.1.2 支持向量機SVM的核函式 / 102
7.2 SVM的核函式與參數選擇 / 104
7.2.1 不同核函式的SVM對比 / 104
7.2.2 支持向量機的gamma參數調節 / 106
7.2.3 SVM算法的優勢與不足 / 108
7.3 SVM實例——波士頓房價回歸分析 / 108
7.3.1 初步了解數據集 / 109
7.3.2 使用SVR進行建模 / 110
7.4 小結 / 114
第8章 神經網路——曾入“冷宮”,如今得寵
8.1 神經網路的前世今生 / 116
8.1.1 神經網路的起源 / 116
8.1.2 第一個感知器學習法則 / 116
8.1.3 神經網路之父——傑弗瑞·欣頓 / 117
8.2 神經網路的原理及使用 / 118
8.2.1 神經網路的原理 / 118
8.2.2 神經網路中的非線性矯正 / 119
8.2.3 神經網路的參數設定 / 121
8.3 神經網路實例——手寫識別 / 127
8.3.1 使用MNIST數據集 / 128
8.3.2 訓練MLP神經網路 / 129
8.3.3 使用模型進行數字識別 / 130
8.4 小結 / 131
第9章 數據預處理、降維、特徵提取及聚類——快
刀斬亂麻
9.1 數據預處理 / 134
9.1.1 使用StandardScaler進行數據預處理 / 134
9.1.2 使用MinMaxScaler進行數據預處理 / 135
9.1.3 使用RobustScaler進行數據預處理 / 136
9.1.4 使用Normalizer進行數據預處理 / 137
9.1.5 通過數據預處理提高模型準確率 / 138
9.2 數據降維 / 140
9.2.1 PCA主成分分析原理 / 140
9.2.2 對數據降維以便於進行可視化 / 142
9.2.3 原始特徵與PCA主成分之間的關係 / 143
9.3 特徵提取 / 144
9.3.1 PCA主成分分析法用於特徵提取 / 145
9.3.2 非負矩陣分解用於特徵提取 / 148
9.4 聚類算法 / 149
9.4.1 K均值聚類算法 / 150
9.4.2 凝聚聚類算法 / 153
9.4.3 DBSCAN算法 / 154
9.5 小結 / 157
第10章 數據表達與特徵工程——錦上再添花
10.1 數據表達 / 160
10.1.1 使用啞變數轉化類型特徵 / 160
10.1.2 對數據進行裝箱處理 / 162
10.2 數據“升維” / 166
10.2.1 向數據集添加互動式特徵 / 166
10.2.2 向數據集添加多項式特徵 / 170
10.3 自動特徵選擇 / 173
10.3.1 使用單一變數法進行特徵選擇 / 173
10.3.2 基於模型的特徵選擇 / 178
10.3.3 疊代式特徵選擇 / 180
10.4 小結 / 182
第11章 模型評估與最佳化——只有更好,沒有最好
11.1 使用交叉驗證進行模型評估 / 184
11.1.1 scikit-learn中的交叉驗證法 / 184
11.1.2 隨機拆分和“挨個兒試試” / 186
11.1.3 為什麼要使用交叉驗證法 / 188
11.2 使用格線搜尋最佳化模型參數 / 188
11.2.1 簡單格線搜尋 / 189
11.2.2 與交叉驗證結合的格線搜尋 / 191
11.3 分類模型的可信度評估 / 193
11.3.1 分類模型中的預測準確率 / 194
11.3.2 分類模型中的決定係數 / 197
11.4 小結 / 198
第12章 建立算法的管道模型——團結就是力量
12.1 管道模型的概念及用法 / 202
12.1.1 管道模型的基本概念 / 202
12.1.2 使用管道模型進行格線搜尋 / 206
12.2 使用管道模型對股票漲幅進行回歸分析 / 209
12.2.1 數據集準備 / 209
12.2.2 建立包含預處理和MLP模型的管道模型 / 213
12.2.3 向管道模型添加特徵選擇步驟 / 214
12.3 使用管道模型進行模型選擇和參數調優 / 216
12.3.1 使用管道模型進行模型選擇 / 216
12.3.2 使用管道模型尋找更優參數 / 217
12.4 小結 / 220
第13章 文本數據處理——親,見字如“數”
13.1 文本數據的特徵提取、中文分詞及詞袋模型 / 222
13.1.1 使用CountVectorizer對文本進行特徵提取 / 222
13.1.2 使用分詞工具對中文文本進行分詞 / 223
13.1.3 使用詞袋模型將文本數據轉為數組 / 224
13.2 對文本數據進一步進行最佳化處理 / 226
13.2.1 使用n-Gram改善詞袋模型 / 226
13.2.2 使用tf-idf模型對文本數據進行處理 / 228
13.2.3 刪除文本中的停用詞 / 234
13.3 小結 / 236
第14章 從數據獲取到話題提取——從“研究員”
到“段子手”
14.1 簡單頁面的爬取 / 238
14.1.1 準備Requests庫和User Agent / 238
14.1.2 確定一個目標網站並分析其結構 / 240
14.1.3 進行爬取並保存為本地檔案 / 241
14.2 稍微複雜一點的爬取 / 244
14.2.1 確定目標頁面並進行分析 / 245
14.2.2 Python中的正則表達式 / 247
14.2.3 使用BeautifulSoup進行HTML解析 / 251
14.2.4 對目標頁面進行爬取並保存到本地 / 256
14.3 對文本數據進行話題提取 / 258
14.3.1 尋找目標網站並分析結構 / 259
14.3.2 編寫爬蟲進行內容爬取 / 261
14.3.3 使用潛在狄利克雷分布進行話題提取 / 263
14.4 小結 / 265
第15章 人才需求現狀與未來學習方向——你是不
是下一個“大牛”
15.1 人才需求現狀 / 268
15.1.1 全球AI從業者達190萬,人才需求3年翻8倍 / 268
15.1.2 AI人才需求集中於一線城市,七成從業者月薪過萬 / 269
15.1.3 人才困境仍難緩解,政策支援亟不可待 / 269
15.2 未來學習方向 / 270
15.2.1 用於大數據分析的計算引擎 / 270
15.2.2 深度學習開源框架 / 271
15.2.3 使用機率模型進行推理 / 272
15.3 技能磨鍊與實際套用 / 272
15.3.1 Kaggle算法大賽平台和OpenML平台 / 272
15.3.2 在工業級場景中的套用 / 273
15.3.3 對算法模型進行A/B測試 / 273
15.4 小結 / 274
參考文獻 / 275
編輯推薦
人工智慧,火了!
計算機是由程式驅動的,人工智慧不過是一些特殊的算法。只要你有一些程式設計語言的基礎,跟隨本書,你也能進入人工智慧的世界,成為一名人工智慧套用的開發者。
本書特色
1. 內容實用實在、詳略得當,講授符合初學者的認知規律
本書內容涵蓋了有監督學習、無監督學習、模型最佳化、自然語言處理等機器學習領域所必須掌握的知識,從內容結構上非常注重知識的實用性和可操作性。必須掌握的細節處絕不吝惜筆墨、手把手細緻到每一次的滑鼠點擊;僅需要大致了解處絕不鋪張浪費紙張、整體結構的描述提綱挈領。這樣的安排注重了對初學階段必備知識的深入了解,大致了解的知識也能夠有所認識,這種由淺入深、循序漸進的講授完全是遵循和尊重了初學者對機器學習知識的認知規律。
2. 行文幽默詼諧,以實例引導全程,特別適合初學者閱讀
本書介紹的基本理論知識、用於分類的機器學習算法、用於回歸的機器學習算法、數據預處理、數據表達與特徵工程等,都是使用非常貼近生活場景的實例來引導的,這樣就避免了知識講述過於抽象,非常易於理解。同時,作者以幽默詼諧,貼近時代的語言對這些知識進行生動、通俗的一一講解,猶如一位你的老朋友,幫助你縮短入門機器學習的時間。縱觀全書,作者將大學生小 C 追求女神以及幫助他的朋友處理日常問題同機器學習的理論與操作進行對比介紹,這就使得整個學習過程變得簡單、生動起來。
3. 配套的人才培養與引入計畫,幫助讀者將學習成果轉化為真正的生產力
在筆者過去的工作當中,累積了數量可觀的各大網際網路公司招聘通道資源,以及諸多獵頭資源,可以幫助學有所長的讀者快速進入一個實際操作的場景中進一步提高自己的實操能力。除此之外,筆者和國內大部分相關的產業發展部門有著密切的聯繫,對於有志於在人工智慧領域創業的創業者來說,也能夠幫助其對接政策資源,幫助大家在創業過程中得到有關部門的支持,從而使得創業之路變得不那么坎坷。