內容簡介
本書自第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
......
作者簡介
塞巴斯蒂安·拉施卡(Sebastian Raschka)
密西根州立大學博士,他在計算生物學領域提出了幾種新的計算方法,還被科技部落格Analytics Vidhya評為GitHub上*具影響力的數據科學家。他在Python編程方面積累了豐富經驗,曾為如何實際套用數據科學、機器學習和深度學習做過數次講座,包括在SciPy(重要的Python科學計算會議)上做的機器學習教程。正是因為Sebastian在數據科學、機器學習以及Python等領域擁有豐富的演講和寫作經驗,他才有動力完成本書的撰寫,以幫助那些不具備機器學習背景的人設計出有數據驅動的解決方案。他因其工作和貢獻獲得了2016-2017學年系傑出研究生獎,以及《ACM 計算評論》 2016年度*佳獎。
瓦希德·米爾賈利利(Vahid Mirjalili)
密西根州立大學計算機視覺與機器學習研究員,致力於把機器學習套用到各種計算機視覺研究項目。他在學術和研究生涯中積累了豐富的Python編程經驗,其主要研究興趣為深度學習和計算機視覺套用。