目 錄
第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
· · · · · · (
收起)