scikit-learn機器學習常用算法原理及編程實戰

scikit-learn機器學習常用算法原理及編程實戰

機器學習是非常熱門的方向,然而普通的程式設計師想要轉行機器學習卻困難重重。回想起來,筆者在剛開始學習機器學習時,一上來就被一大堆數學公式和推導過程所折磨,這樣的情景還歷歷在目。那時候筆者也覺得機器學習是個門檻非常高的學科。但實際上,在機器學習的從業人員里,究竟有多少人需要從頭去實現一個算法?又有多少人有機會去發明一個新算法?從一開始就被細節和難點纏住,這嚴重打擊了想進入機器學習領域新人的熱情和信心。

本書就是要解決這個問題。筆者希望儘量通過通俗的語言去描述算法的工作原理,並使用scikit-learn工具包演示算法的使用,以及算法所能解決的問題,給那些非科班出身而想半路“殺進”人工智慧領域的程式設計師,以及對機器學習感興趣的人提供一本入門的書籍。

當然,這裡不是否認數學和算法實現的重要性,畢竟它們是人工智慧領域的基礎學科方向。萬事開頭難,只有打開了一扇門,才能發現一個新的五彩繽紛的世界。在這個世界裡,我們可以吃到新口味的麵包,也能認識那些做麵包給別人吃的人。希望這本書能幫助讀者打開機器學習的這扇門。

書籍介紹

內容簡介

本書通過通俗易懂的語言、豐富的圖示和生動的實例,撥開了籠罩在機器學習上方複雜的數學“烏雲”,讓讀者以較低的代價和門檻入門機器學習。

本書共分為11章,介紹了在Python環境下學習Scikit-learn機器學習框架的相關知識,涵蓋的主要內容有機器學習概述、Python機器學習軟體包、機器學習理論基礎、k-近鄰算法、線性回歸算法、邏輯回歸算法、決策樹、支持向量機、樸素貝葉斯算法、PCA算法和k-均值算法等。

本書適合有一定編程基礎的讀者閱讀,尤其適合想從事機器學習、人工智慧、深度學習及機器人相關技術的程式設計師和愛好者閱讀。另外,相關院校和培訓機構也可以將本書作為教材使用。

30秒極速了解本書精華內容

1. 理論基礎

機器學習的套用場景

機器學習編程的典型步驟

Python機器學習開發包:numpy、pandas和matplotlib

算法模型性能評估的指標和評估方法

2. 八大常用機器學習算法

k-近鄰算法

線性回歸算法

邏輯回歸算法

決策樹

支持向量機

樸素貝葉斯

PCA算法

k-均值算法

3. 七大實戰演練案例

糖尿病檢測

預測房價

乳腺癌檢測

鐵達尼號倖存者預測

文檔類別預測

人臉識別

文檔自動分類

本書特色

1.用通俗易懂的語言介紹機器學習算法的原理,符合初學者的認知規律
本書講解時首先會用通俗易懂的語言介紹常用的機器學習算法,幫助讀者直觀地理解每個算法的基本原理,然後用大量的圖示及實例介紹如何使用scikit-learn工具包解決現實生活中的機器學習問題。這種由淺入深、循序漸進的講授方式,完全遵循了初學者對機器學習算法的認知規律。
2.豐富的示例圖片,可以幫助讀者更加直觀地理解算法背後的原理
機器學習以其背後複雜的數學原理及異常複雜的算法推導和證明過程而嚇退了一大批讀者。一圖勝千言,本書給出了大量的圖示,用圖片的方式形象地介紹了算法的基本原理,讓讀者對算法有更加直觀的理解。這樣就把複雜的數學公式和冗長的文字描述濃縮到一張張圖片中,有效地降低了學習的門檻。
3.實例豐富,可以幫助讀者使用機器學習算法解決工程套用問題
手寫識別程式怎么做?怎么實現人臉識別系統?怎么過濾垃圾郵件?電子商務網站上猜你喜歡的商品是什麼原理?怎么實現的?電影網站怎樣去推薦符合用戶喜好的電影?怎么利用機器學習對消費者的特性進行細分,從而更好地服務好各細分市場的消費者?銀行怎樣去檢測用戶的信用卡可能被盜了?通過閱讀本書,讀者將了解到這些複雜問題背後的原理,甚至你都可以自己解決這些問題。

目錄

前言

第1章 機器學習介紹1

1.1 什麼是機器學習1

1.2 機器學習有什麼用2

1.3 機器學習的分類3

1.4 機器學習套用開發的典型步驟4

1.4.1 數據採集和標記4

1.4.2 數據清洗5

1.4.3 特徵選擇5

1.4.4 模型選擇5

1.4.5 模型訓練和測試5

1.4.6 模型性能評估和最佳化5

1.4.7 模型使用6

1.5 複習題6

第2章 Python機器學習軟體包7

2.1 開發環境搭建7

2.2 IPython簡介8

2.2.1 IPython基礎8

2.2.2 IPython圖形界面13

2.3 Numpy簡介15

2.3.1 Numpy數組15

2.3.2 Numpy運算19

2.4 Pandas簡介32

2.4.1 基本數據結構32

2.4.2 數據排序34

2.4.3 數據訪問34

2.4.4 時間序列36

2.4.5 數據可視化36

2.4.6 檔案讀寫38

2.5 Matplotlib簡介38

2.5.1 圖形樣式38

2.5.2 圖形對象40

2.5.3 畫圖操作46

2.6 scikit-learn簡介51

2.6.1 scikit-learn示例51

2.6.2 scikit-learn一般性原理和通用規則55

2.7 複習題56

2.8 拓展學習資源57

第3章 機器學習理論基礎58

3.1 過擬合和欠擬合58

3.2 成本函式59

3.3 模型準確性60

3.3.1 模型性能的不同表述方式61

3.3.2 交叉驗證數據集61

3.4 學習曲線62

3.4.1 實例:畫出學習曲線62

3.4.2 過擬合和欠擬合的特徵65

3.5 算法模型性能最佳化65

3.6 查準率和召回率66

3.7 F1 Score67

3.8 複習題67

第4章 k-近鄰算法69

4.1 算法原理69

4.1.1 算法優缺點69

4.1.2 算法參數70

4.1.3 算法的變種70

4.2 示例:使用k-近鄰算法進行分類70

4.3 示例:使用k-近鄰算法進行回歸擬合72

4.4 實例:糖尿病預測74

4.4.1 載入數據74

4.4.2 模型比較75

4.4.3 模型訓練及分析77

4.4.4 特徵選擇及數據可視化78

4.5 拓展閱讀80

4.5.1 如何提高k-近鄰算法的運算效率80

4.5.2 相關性測試80

4.6 複習題81

第5章 線性回歸算法83

5.1 算法原理83

5.1.1 預測函式83

5.1.2 成本函式84

5.1.3 梯度下降算法84

5.2 多變數線性回歸算法86

5.2.1 預測函式86

5.2.2 成本函式87

5.2.3 梯度下降算法88

5.3 模型最佳化89

5.3.1 多項式與線性回歸89

5.3.2 數據歸一化89

5.4 示例:使用線性回歸算法擬合正弦函式90

5.5 示例:測算房價92

5.5.1 輸入特徵92

5.5.2 模型訓練93

5.5.3 模型最佳化94

5.5.4 學習曲線95

5.6 拓展閱讀96

5.6.1 梯度下降疊代公式推導96

5.6.2 隨機梯度下降算法96

5.6.3 標準方程97

5.7 複習題97

第6章 邏輯回歸算法98

6.1 算法原理98

6.1.1 預測函式98

6.1.2 判定邊界99

6.1.3 成本函式100

6.1.4 梯度下降算法102

6.2 多元分類102

6.3 正則化103

6.3.1 線性回歸模型正則化103

6.3.2 邏輯回歸模型正則化104

6.4 算法參數104

6.5 實例:乳腺癌檢測106

6.5.1 數據採集及特徵提取106

6.5.2 模型訓練108

6.5.3 模型最佳化110

6.5.4 學習曲線111

6.6 拓展閱讀113

6.7 複習題114

第7章 決策樹115

7.1 算法原理115

7.1.1 信息增益116

7.1.2 決策樹的創建119

7.1.3 剪枝算法120

7.2 算法參數121

7.3 實例:預測鐵達尼號倖存者122

7.3.1 數據分析122

7.3.2 模型訓練123

7.3.3 最佳化模型參數124

7.3.4 模型參數選擇工具包127

7.4 拓展閱讀130

7.4.1 熵和條件熵130

7.4.2 決策樹的構建算法130

7.5 集合算法131

7.5.1 自助聚合算法Bagging131

7.5.2 正向激勵算法boosting131

7.5.3 隨機森林132

7.5.4 ExtraTrees算法133

7.6 複習題133

第8章 支持向量機134

8.1 算法原理134

8.1.1 大間距分類算法134

8.1.2 鬆弛係數136

8.2 核函式138

8.2.1 最簡單的核函式138

8.2.2 相似性函式140

8.2.3 常用的核函式141

8.2.4 核函式的對比142

8.3 scikit-learn里的SVM144

8.4 實例:乳腺癌檢測146

8.5 複習題149

第9章 樸素貝葉斯算法151

9.1 算法原理151

9.1.1 貝葉斯定理151

9.1.2 樸素貝葉斯分類法152

9.2 一個簡單的例子153

9.3 機率分布154

9.3.1 機率統計的基本概念154

9.3.2 多項式分布155

9.3.3 高斯分布158

9.4 連續值的處理159

9.5 實例:文檔分類160

9.5.1 獲取數據集160

9.5.2 文檔的數學表達161

9.5.3 模型訓練163

9.5.4 模型評價165

9.6 複習題167

第10章 PCA算法168

10.1 算法原理168

10.1.1 數據歸一化和縮放169

10.1.2 計算協方差矩陣的特徵向量169

10.1.3 數據降維和恢復170

10.2 PCA 算法示例171

10.2.1 使用Numpy模擬PCA計算過程171

10.2.2 使用sklearn進行PCA降維運算173

10.2.3 PCA的物理含義174

10.3 PCA 的數據還原率及套用175

10.3.1 數據還原率175

10.3.2 加快監督機器學習算法的運算速度176

10.4 實例:人臉識別176

10.4.1 載入數據集176

10.4.2 一次失敗的嘗試179

10.4.3 使用PCA來處理數據集182

10.4.4 最終結果185

10.5 拓展閱讀189

10.6 複習題189

第11章 k-均值算法190

11.1 算法原理190

11.1.1 k-均值算法成本函式191

11.1.2 隨機初始化聚類中心點191

11.1.3 選擇聚類的個數192

11.2 scikit-learn里的k-均值算法192

11.3 使用k-均值對文檔進行聚類分析195

11.3.1 準備數據集195

11.3.2 載入數據集196

11.3.3 文本聚類分析197

11.4 聚類算法性能評估200

11.4.1 Adjust Rand Index200

11.4.2 齊次性和完整性201

11.4.3 輪廓係數203

11.5 複習題204

後記205

相關詞條

熱門詞條

聯絡我們