Python 機器學習, 2/e (簡中版)(Python Machine Learning, 2/e)

塞巴斯蒂安·拉施卡 (Sebastian Raschka), 瓦希德·米

買這商品的人也買了...

商品描述

本書自第1版出版以來,備受廣大讀者歡迎。與同類書相比,本書除了介紹如何用Python和基於Python的機器學習軟件庫進行實踐外,還對機器學習概念的必要細節進行討論,同時對機器學習算法的工作原理、使用方法以及如何避免掉入常見的陷阱提供直觀且翔實的解釋,是Python機器學習入門必讀之作。
本書將帶領你進入預測分析的世界,並展示為什麼Python會成為數據科學領域首屈一指的計算機語言。如果你想更好地從數據中得到問題的答案,或者想要提升並擴展現有機器學習系統的性能,那麼這本基於數據科學實踐的書籍非常值得一讀。它的內容涵蓋了眾多高效Python庫,包括scikit-learn、Keras和TensorFlow等,系統性地梳理和分析了各種經典算法,並通過Python語言以具體代碼示例的方式深入淺出地介紹了各種算法的應用,還給出了從情感分析到神經網絡的一些實踐技巧,這些內容能使你快速解決你和你的團隊面臨的一些重要問題。

不管你是學習數據科學的初學者,還是想進一步拓展對數據科學領域的認知,本書都是一個重要且不可錯過的資源,它能幫助你瞭解如何使用Python解決數據中的關鍵問題。
本書自第1版出版以來,備受廣大讀者歡迎。與同類書相比,本書除了介紹如何用Python和基於Python的機器學習軟件庫進行實踐外,還對機器學習概念的必要細節進行討論,同時對機器學習算法的工作原理、使用方法以及如何避免掉入常見的陷阱提供直觀且翔實的解釋,是Python機器學習入門必讀之作。
本書將帶領你進入預測分析的世界,並展示為什麼Python會成為數據科學領域首屈一指的計算機語言。如果你想更好地從數據中得到問題的答案,或者想要提升並擴展現有機器學習系統的性能,那麼這本基於數據科學實踐的書籍非常值得一讀。它的內容涵蓋了眾多高效Python庫,包括scikit-learn、Keras和TensorFlow等,系統性地梳理和分析了各種經典算法,並通過Python語言以具體代碼示例的方式深入淺出地介紹了各種算法的應用,還給出了從情感分析到神經網絡的一些實踐技巧,這些內容能使你快速解決你和你的團隊面臨的一些重要問題。
不管你是學習數據科學的初學者,還是想進一步拓展對數據科學領域的認知,本書都是一個重要且不可錯過的資源,它能幫助你瞭解如何使用Python解決數據中的關鍵問題。

本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓你聚焦於如何正確地提出問題、解決問題。書中講解瞭如何使用Python的核心元素以及強大的機器學習庫,同時還展示瞭如何正確使用一系列統計模型。
在本書第1版的基礎上,作者對第2版進行了大量更新和擴展,納入最近的開源技術,包括scikit-learn、Keras和TensorFlow,提供了使用Python構建高效的機器學習與深度學習應用的必要知識與技術。

通過閱讀本書,你將學到:
探索並理解數據科學、機器學習與深度學習的主要框架
通過機器學習模型與神經網絡對數據提出新的疑問
在機器學習中使用新的Python開源庫的強大功能
掌握如何使用TensorFlow庫來實現深度神經網絡
在可訪問的Web應用中嵌入機器學習模型
使用回歸分析預測連續目標的結果
使用聚類發現數據中的隱藏模式與結構
使用深度學習技術分析圖片
使用情感分析深入研究文本與社交媒體數據

目錄大綱

譯者序
關於作者
關於審校人員
前言
第1章 賦予計算機從數據中學習的能力 1
1.1 構建把數據轉換為知識​​的智能機器 1
1.2 三種不同類型的機器學習 1
1.2.1 用有監督學習預測未來 2
1.2.2 用強化學習解決交互問題 3
1.2.3 用無監督學習發現隱藏結構 4
1.3 基本術語與符號 4
1.4 構建機器學習系統的路線圖 6
1.4.1 預處理—整理數據 6
1.4.2 訓練和選擇預測模型 7
1.4.3 評估模型和預測新樣本數據 7
1.5 用Python進行機器學習 7
1.5.1 從Python包索引安裝Python和其他包 8
1.5.2 採用Anaconda Python和軟件包管理器 8
1.5.3 科學計算、數據科學和機器學習軟件包 8
1.6 小結 9
第2章 訓練簡單的機器學習分類算法 10
2.1 人工神經元—機器學習早期歷史一瞥 10
2.1.1 人工神經元的正式定義 11
2.1.2 感知器學習規則 12
2.2 在Python中實現感知器學習算法 14
2.2.1 面向對象的感知器API 14
2.2.2 在鳶尾花數據集上訓練感知器模型 16
2.3 自適應神經元和學習收斂 20
2.3.1 梯度下降為最小代價函數 21
2.3.2 用Python實現Adaline 22
2.3.3 通過調整特徵大小改善梯度下降 25
2.3.4 大規模機器學習與隨機梯度下降 27
2.4 小結 30
第3章 scikit-learn機器學習分類器一覽 32
3.1 選擇分類算法 32
3.2 了解scikit-learn軟件庫的第一步—訓練感知器 32
3.3 基於邏輯回歸的分類概率建模 37
3.3.1 邏輯回歸的直覺與條件概率 37
3.3.2 學習邏輯代價函數的權重 39
3.3.3 把轉換的Adaline用於邏輯回歸算法 41
3.3.4 用scikit-learn訓練邏輯回歸模型 44
3.3.5 通過正則化解決過擬合問題 45
3.4 支持向量機的最大餘量分類 47
3.4.1 最大邊際的直覺 48
3.4.2 用鬆弛變量處理非線性可分 48
3.4.3 其他的scikit-learn 實現 50
3.5 用核支持向量機求解非線性問題 50
3.5.1 處理線性不可分數據的核方法 50
3.5.2 利用核技巧,發現高維空間的分離超平面 52
3.6 決策樹學習 55
3.6.1 最大限度地獲取信息—獲得最大收益 55
3.6.2 構建決策樹 58
3.6.3 通過隨機森林組合多個決策樹 61
3.7 K-近鄰—一種懶惰的學習算法 63
3.8 小結 65
第4章 構建良好的訓練集——預處理 66
4.1 處理缺失數據 66
4.1.1 識別數據中的缺失數值 66
4.1.2 刪除缺失的數據 67
4.1.3 填補缺失的數據 68
4.1.4 了解scikit-learn評估器API 68
4.2 處理分類數據 69
4.2.1 名詞特徵和序數特徵 69
4.2.2 映射序數特徵 70
4.2.3 分類標籤編碼 70
4.2.4 為名詞特徵做熱編碼 71
4.3 分裂數據集為獨立的訓練集和測試集 73
4.4 把特徵保持在同一尺度上 75
4.5 選擇有意義的特徵 76
4.5.1 L1和L2正則化對模型複雜度的懲罰 76
4.5.2 L2正則化的幾何解釋 77
4.5.3 L1正則化的稀疏解決方案 78
4.5.4 為序數特徵選擇算法 80
4.6 用隨機森林評估特徵的重要性 84
4.7 小結 87
第5章 通過降維壓縮數據 88
5.1 用主成分分析實現無監督降維 88
5.1.1 主成分分析的主要步驟 88
5.1.2 逐步提取主成分 89
5.1.3 總方差和解釋方差 91
5.1.4 特徵變換 92
5.1.5 scikit-learn的主成分分析 93
5.2 基於線性判別分析的有監督數據壓縮 96
5.2.1 主成分分析與線性判別分析 96
5.2.2 線性判別分析的內部邏輯 97
5.2.3 計算散佈矩陣 97
5.2.4 在新的特徵子空間選擇線性判別式 99
5.2.5 將樣本投影到新的特徵空間 101
5.2.6 用scikit-learn實現的LDA 101
5.3 非線性映射的核主成分分析 102
5.3.1 核函數與核技巧 103
5.3.2 用Python實現核主成分分析 106
5.3.3 投影新的數據點 111
5.3.4 scikit-learn的核主成分分析 113
5.4 小結 114
第6章 模型評估和超參數調優的最佳實踐 115
6.1 用管道方法簡化工作流 115
6.1.1 加載威斯康星乳腺癌數據集 115
6.1.2 集成管道中的轉換器和評估器 116
6.2 使用k折交叉驗證評估模型的性能 118
6.2.1 抵抗方法 118
6.2.2 k折交叉驗證 119
6.3 用學習和驗證曲線調試算法 122
6.3.1 用學習曲線診斷偏差和方差問題 122
6.3.2 用驗證曲線解決過擬合和欠擬合問題 124
6.4 通過網格搜索為機器學習模型調優 126
6.4.1 通過網格搜索為超參數調優 126
6.4.2 以嵌套式交叉驗證來選擇算法 127
6.5 比較不同的性能評估指標 128
6.5.1 含混矩陣分析 128
6.5.2 優化分類模型的準確度和召回率 129
6.5.3 繪製受試者操作特性圖 130
6.5.4 多元分類評分指標 133
6.6 處理類的不平衡問題 133
6.7 小結 135
第7章 綜合不同模型的組合學習 136
7.1 集成學習 136
7.2 採用多數票機制的集成分類器 139
7.2.1 實現基於多數票的簡單分類器 139
7.2.2 用多數票原則進行預測 143
7.2.3 評估和優化集成分類器 145
7.3 套袋—基於導引樣本構建分類器集成 149
7.3.1 套袋簡介 150
7.3.2 應用套袋技術對葡萄酒數據集中的樣本分類 151
7.4 通過自適應增強來利用弱學習者 153
7.4.1 增強是如何實現的 154
7.4.2 用scikit-learn實現AdaBoost 156
7.5 小結 158
第8章 應用機器學習於情感分析 159
8.1 為文本處理預備好IMDb電影評論數據 159
8.1.1 獲取電影評論數據集 159
8.1.2 把電影評論數據預處理成更方便格式的數據 160
8.2 詞袋模型介紹 161
8.2.1 把詞轉換成特徵向量 161
8.2.2 通過詞頻逆反文檔頻率評估單詞相關性 162
8.2.3 清洗文本數據 164
8.2.4 把文檔處理為令牌 165
8.3 訓練文檔分類的邏輯回歸模型 166
8.4 處理更大的數據集—在線算法和核心學習 168
8.5 具有潛在狄氏分配的主題建模 171
8.5.1 使用LDA分解文本文檔 171
8.5.2 LDA與scikit-learn 172
8.6 小結 174
第9章 將機器學習模型嵌入網絡應用 175
9.1 序列化擬合scikit-learn評估器 175
9.2 搭建SQLite數據庫存儲數據 177
9.3 用Flask開發網絡應用 179
9.3.1 第一個Flask網絡應用 179
9.3.2 表單驗證與渲染 181
9.4 將電影評論分類器轉換為網絡應用 184
9.4.1 文件與文件夾—研究目錄樹 185
9.4.2 實現主應用app.py 186
9.4.3 建立評論表單 188
9.4.4 創建一個結果頁面的模板 189
9.5 在面向公眾的服務器上部署網絡應用 190
9.5.1 創建PythonAnywhere賬戶 190
9.5.2 上傳電影分類應用 191
9.5.3 更新電影分類器 191
9.6 小結 193
第10章 用回歸分析預測連續目標變量 194
10.1 線性回歸簡介 194
10.1.1 簡單線性回歸 194
10.1.2 多元線性回歸 195
10.2 探索住房數據集 196
10.2.1 加載住房數據 196
10.2.2 可視化數據集的重要特點 197
10.2.3 用關聯矩陣查看關係 198
10.3 普通最小二乘線性回歸模型的實現 200
10.3.1 用梯度下降方法求解回歸參數 200
10.3.2 通過scikit-learn估計回歸模型的係數 203
10.4 利用RANSAC擬合穩健的回歸模型 205
10.5 評估線性回歸模型的性能 206
10.6 用正則化方法進行回歸 209
10.7 將線性回歸模型轉換為曲線—多項式回歸 210
10.7.1 用scikit-learn增加多項式的項 210
10.7.2 為住房數據集中的非線性關係建模 211
10.8 用隨機森林處理非線性關係 214
10.8.1 決策樹回歸 214
10.8.2 隨機森林回歸 215
10.9 小結 217
第11章 用聚類分析處理無標籤數據 218
11.1 用k-均值進行相似性分組 218
11.1.1 scikit-learn的k-均值聚類 218
11.1.2 k-均值++—更聰明地設置初始聚類中心的方法 221
11.1.3 硬聚類與軟聚類 222
11.1.4 用肘法求解最佳聚類數 223
11.1.5 通過輪廓圖量化聚類質量 224
11.2 把集群組織成有層次的樹 228
11.2.1 以自下而上的方式聚類 228
11.2.2 在距離矩陣上進行層次聚類 229
11.2.3 熱度圖附加樹狀圖 232
11.2.4 scikit-learn凝聚聚類方法 233
11.3 通過DBSCAN定位高密度區域 233
11.4 小結 237
第12章 從零開始實現多層人工神經網絡 238
12.1 用人工神經網絡為複雜函數建模 238
12.1.1 單層神經網絡扼要重述 239
12.1.2 介紹多層神經網絡體系 240
12.1.3 利用正向傳播激活神經網絡 242
12.2 識別手寫數字 243
12.2.1 獲取MNIST數據集 243
12.2.2 實現一個多層感知器 247
12.3 訓練人工神經網絡 256
12.3.1 邏輯成本函數的計算 256
12.3.2 開發反向傳播的直覺 257
12.3.3 通過反向傳播訓練神經網絡 258
12.4 關於神經網絡的收斂性 260
12.5 關於神經網絡實現的最後幾句話 261
12.6 小結 261
第13章 用TensorFlow並行訓練神經網絡 262
13.1 TensorFlow與模型訓練的性能 262
13.1.1 什麼是TensorFlow 263
13.1.2 如何學習TensorFlow 264
13.1.3 學習TensorFlow的第一步 264
13.1.4 使用陣列結構 266
13.1.5 用TensorFlow的底層API開發簡單的模型 267
13.2 用TensorFlow的高級 API高效率地訓練神經網絡 270
13.2.1 用TensorFlow的Layers API構建多層神經網絡 270
13.2.2 用Keras研發多層神經網絡 274
13.3 多層網絡激活函數的選擇 277
13.3.1 邏輯函數回顧 278
13.3.2 在多元分類中調用softmax函數評估類別概率 279
13.3.3 利用雙曲正切拓寬輸出範圍 280
13.3.4 修正線性單元激活函數 281
13.4 小結 282
第14章 深入探討TensorFlow的工作原理 283
14.1 TensorFlow的主要功能 283
14.2 TensorFlow 的排序與張量 284
14.3 了解TensorFlow的計算圖 285
14.4 TensorFlow中的佔位符 287
14.4.1 定義佔位符 287
14.4.2 為佔位符提供數據 287
14.4.3