內容簡介
在大數據時代背景下,機器學習是人工智慧研究領域中一個極其重要的方向,本書己盼嚷龍是一本機器學習方面的入門讀物,注重理論與實踐相結合,書中以Python 3.6.5為編寫平台,共分13章,主要包括機器學習緒論、線性模型、樹回歸、K-means聚類算法、
樸素貝葉斯、數據降維、
支持向量機、隨機森林、
人工神經網路、
協同過濾算法、基於矩陣分解的推薦算法、集成學習、數局笑阿據預處理等內容。通過本書的學習,除使讀者輕鬆掌握Python外,還能利用Python簡單、快捷地解決各種機器學習問題。本書適合Python初學者,也適合研究Python的廣大科研人員、學者、工程技術人員。
目錄
第1章 機器學習緒論 1
1.1 機器學習的定義 1
1.1.1 緒論 1
1.1.2 機器學習發展歷程 2
1.2 學習算法 4
1.2.1 監督學習 4
1.2.2 無監督學習 5
1.3 機器學習應用程式的步驟 6
1.4 Python語言 7
1.4.1 Python的風格 7
1.4.2 Python的優勢 7
1.4.3 Python語言的缺點 8
1.5 Python的環境搭建 9
1.5.1 安裝 10
1.5.2 使用pip安裝第三恥巴夜船方庫 13
1.6 NumPy函式館基礎 14
1.7 Python的基礎知識 16
1.7.1 數和表達式 16
1.7.2 Python的標識符 18
1.7.3 Python的保留字催斷符 19
1.7.4 行和縮進 19
1.7.5 多行語句 20
1.7.6 Python引號 20
1.7.7 Python空行 20
1.7.8 同一行顯示多條語句 20
1.7.9 Print輸出 21
第2章 線性模型 22
2.1 一般線性回歸 23
2.1.1 線性回歸公式表示法 23
2.1.2 線性回歸的Python實現 25
2.2 局部加權線性回歸 27
2.3 廣義線性模型 30
2.4 邏輯回歸分析 36
2.5 牛頓法 40
2.5.1 基本牛頓法的原理 40
2.5.2 基本牛頓法的流程 40
2.5.3 全局牛頓法 40
2.5.4 Armijo搜尋 42
2.6 縮減法 43
2.6.1 嶺回歸 44
2.6.2 lasso回歸 46
2.7 利用線性回歸進行預測 47
2.7.1 訓練線詢漿烏性回歸模型 47
2.7.2 對新數據的預測 49
第3章 樹回歸 51
3.1 構建決策樹的準備工作 52
3.1.1 特徵選擇 52
3.1.2 決策樹的生成和修剪 60
3.2 Matplotlib注釋繪製樹形圖 60
3.3 使用決策樹執行分類 67
3.4 決策樹的存儲 71
3.5 Sklearn使用決策樹預測
隱形眼鏡類型 73
3.5.1 實戰背景 73
3.5.2 使用Sklearn構建決策樹 73
3.6 複雜數據的局部性建模 80
3.7 連續型和離散型特徵的樹構建 81
3.8 分類回歸樹 82
3.8.1 構建樹 83
3.8.2 剪枝 85
3.8.3 模型樹 87
3.8.4 分類回歸的Python實現 88
第4章企駝笑 K-means聚類算法 92
4.1 K-means聚類算法的概述 92
4.2 相似性的棵套請度量 93
4.2.1 閔可夫斯基距離 93
4.2.2 曼哈頓距離 93
4.2.3 歐氏距離 93
4.3 K-means聚類算法的原理 94
4.3.1 K-means聚類算法的步驟 94
4.3.2 K-means算法與矩陣分解 95
4.3.3 K-means聚類算法的實現 96
4.4 K-近鄰算法 104
4.5 各種聚類算法 107
4.5.1 劃分聚類法 107
4.5.3 密度聚類法 111
4.5.4 譜聚類法 116
4.5.5 Birch聚類 119
4.6 K-means++算法 122
4.6.1 K-means算法存在的問題 122
4.6.2 K-means++算法的思路 123
5.1 樸素貝葉斯理論 127
5.1.2 條件機率 128
5.1.4 貝葉斯推斷 129
5.1.5 樸素貝葉斯推斷 130
5.2 樸素貝葉斯算法 131
5.3 樸素貝葉斯算法的優缺點 140
第6章 數據降維 141
6.1 維度災難與降維 141
6.2 高維數據降維的方法 141
6.2.1 線性降維 142
6.2.2 非線性降維 146
6.2.3 SVD降維 153
6.2.4 流形學習降維 159
6.2.5 多維縮放降維 166
第7章 支持向量機 170
7.2 分類間隔 171
7.2.1 函式間距 172
7.2.2 幾何間距 173
7.3.1 拉格朗日對偶性 175
7.3.2 最佳化間隔分類器 176
7.4 核函式 178
7.4.1 核函式的選擇 180
7.4.2 鬆弛向量與軟間隔最大化 180
7.5.1 坐標上升算法 182
7.5.2 SOM 182
7.6 SVM的優缺點 185
7.7 SVM的Python實現 185
第8章 隨機森林 192
8.1 什麼是隨機森林 192
8.2 集成學習 192
8.2.1 集成學習的思想 193
8.2.2 集成學習中的典型方法 193
8.3 Stacking 194
8.3.1 Stacking的基本思想 194
8.3.2 Stacking的實現 195
8.4 隨機森林算法 198
8.4.1 隨機森林的特點 198
8.4.2 隨機森林算法流程 199
8.5 隨機森林算法實踐 201
8.6 美國人口普查年收入50k分類 207
8.6.1 數據預處理 208
8.6.2 模型訓練及驗證 212
9.1 感知機模型 217
9.1.1 感知機的定義 217
9.1.2 感知機的學習策略 218
9.1.3 感知機學習算法 218
9.1.4 感知機的Python實現 226
9.2 從感知機到神經網路 236
9.3.1 BP網路算法 241
9.3.3 BP神經網路中參數的設定 249
9.4 神經網路的Python實現 253
10.1 協同過濾的核心 272
10.2 協同過濾的分類 272
10.3 相似性的度量方法 273
10.3.1 歐氏距離 273
10.3.4 用Python實現餘弦相似度的計算 274
10.4 基於用戶的協同過濾算法 275
10.4.1 基於物品的協同過濾算法 275
10.4.2 基於矩陣分解的協同過濾算法 276
10.4.3 Python實現 276
10.5 基於項的協同過濾算法 280
10.6 利用協同過濾算法進行推薦 281
10.6.1 導入用戶-商品數據 281
10.6.2 利用基於用戶的協同過濾算法進行推薦 282
10.6.3 利用基於項的協同過濾算法進行推薦 283
第11章 基於矩陣分解的推薦算法 285
11.1 矩陣分解 285
11.2 利用矩陣分解進行預測 286
11.2.1 損失函式 286
11.2.2 損失函式的求解 286
11.2.3 加入正則項的損失函式即求解方法 286
11.2.4 預測 288
11.2.5 程式實現 289
11.3.1 非負矩陣分解的形式定義 291
11.3.2 損失函式 291
11.3.3 最佳化問題的求解 292
11.3.4 利用乘法規則進行分解和預測 294
11.4 基於矩陣分解的推薦方法 295
11.4.1 LFM法 295
11.4.2 SVD法 298
11.4.3 SVD++法 300
第12章 集成學習 304
12.1 集成學習的原理及誤差 304
12.2 集成學習方法 305
12.2.1 Boosting算法 305
12.2.2 AdaBoost算法 305
12.2.3 AdaBoost與加法模型 309
12.2.4 提升樹 310
12.2.5 Bagging算法 313
12.2.6 誤差-分歧分解 314
12.2.7 多樣性增強 315
12.2.8 Stacking算法 316
12.3 Python實現 317
第13章 數據預處理 322
13.1 數據預處理概述 322
13.1.1 為什麼要對數據進行預處理 322
13.1.2 數據預處理的主要任務 323
13.2 去除唯一屬性 323
13.3 處理缺失值 324
13.3.1 直接使用 324
13.3.2 刪除特徵 324
13.3.3 缺失值補全 324
13.3.4 數據清理 328
13.3.5 特徵編碼 330
13.3.6 數據標準化 331
13.3.7 正則化 332
13.3.8 特徵選擇 333
13.3.9 稀疏表示和字典學習 335
13.4 Python實現 337
參考文獻 352,
第1章 機器學習緒論 1
1.1 機器學習的定義 1
1.1.1 緒論 1
1.1.2 機器學習發展歷程 2
1.2 學習算法 4
1.2.1 監督學習 4
1.2.2 無監督學習 5
1.3 機器學習應用程式的步驟 6
1.4 Python語言 7
1.4.1 Python的風格 7
1.4.2 Python的優勢 7
1.4.3 Python語言的缺點 8
1.5 Python的環境搭建 9
1.5.1 安裝 10
1.5.2 使用pip安裝第三方庫 13
1.6 NumPy函式館基礎 14
1.7 Python的基礎知識 16
1.7.1 數和表達式 16
1.7.2 Python的標識符 18
1.7.3 Python的保留字元 19
1.7.4 行和縮進 19
1.7.5 多行語句 20
1.7.6 Python引號 20
1.7.7 Python空行 20
1.7.8 同一行顯示多條語句 20
1.7.9 Print輸出 21
第2章 線性模型 22
2.1 一般線性回歸 23
2.1.1 線性回歸公式表示法 23
2.1.2 線性回歸的Python實現 25
2.2 局部加權線性回歸 27
2.3 廣義線性模型 30
2.4 邏輯回歸分析 36
2.5 牛頓法 40
2.5.1 基本牛頓法的原理 40
2.5.2 基本牛頓法的流程 40
2.5.3 全局牛頓法 40
2.5.4 Armijo搜尋 42
2.6 縮減法 43
2.6.1 嶺回歸 44
2.6.2 lasso回歸 46
2.7 利用線性回歸進行預測 47
2.7.1 訓練線性回歸模型 47
2.7.2 對新數據的預測 49
第3章 樹回歸 51
3.1 構建決策樹的準備工作 52
3.1.1 特徵選擇 52
3.1.2 決策樹的生成和修剪 60
3.2 Matplotlib注釋繪製樹形圖 60
3.3 使用決策樹執行分類 67
3.4 決策樹的存儲 71
3.5 Sklearn使用決策樹預測
隱形眼鏡類型 73
3.5.1 實戰背景 73
3.5.2 使用Sklearn構建決策樹 73
3.6 複雜數據的局部性建模 80
3.7 連續型和離散型特徵的樹構建 81
3.8 分類回歸樹 82
3.8.1 構建樹 83
3.8.2 剪枝 85
3.8.3 模型樹 87
3.8.4 分類回歸的Python實現 88
第4章 K-means聚類算法 92
4.1 K-means聚類算法的概述 92
4.2 相似性的度量 93
4.2.1 閔可夫斯基距離 93
4.2.2 曼哈頓距離 93
4.2.3 歐氏距離 93
4.3 K-means聚類算法的原理 94
4.3.1 K-means聚類算法的步驟 94
4.3.2 K-means算法與矩陣分解 95
4.3.3 K-means聚類算法的實現 96
4.4 K-近鄰算法 104
4.5 各種聚類算法 107
4.5.1 劃分聚類法 107
4.5.3 密度聚類法 111
4.5.4 譜聚類法 116
4.5.5 Birch聚類 119
4.6 K-means++算法 122
4.6.1 K-means算法存在的問題 122
4.6.2 K-means++算法的思路 123
第5章 樸素貝葉斯 127
5.1 樸素貝葉斯理論 127
5.1.2 條件機率 128
5.1.4 貝葉斯推斷 129
5.1.5 樸素貝葉斯推斷 130
5.2 樸素貝葉斯算法 131
5.3 樸素貝葉斯算法的優缺點 140
第6章 數據降維 141
6.1 維度災難與降維 141
6.2 高維數據降維的方法 141
6.2.1 線性降維 142
6.2.2 非線性降維 146
6.2.3 SVD降維 153
6.2.4 流形學習降維 159
6.2.5 多維縮放降維 166
第7章 支持向量機 170
7.1 支持向量機概述 170
7.2 分類間隔 171
7.2.1 函式間距 172
7.2.2 幾何間距 173
7.3.1 拉格朗日對偶性 175
7.3.2 最佳化間隔分類器 176
7.4 核函式 178
7.4.1 核函式的選擇 180
7.4.2 鬆弛向量與軟間隔最大化 180
7.5.1 坐標上升算法 182
7.5.2 SOM 182
7.6 SVM的優缺點 185
7.7 SVM的Python實現 185
第8章 隨機森林 192
8.1 什麼是隨機森林 192
8.2 集成學習 192
8.2.1 集成學習的思想 193
8.2.2 集成學習中的典型方法 193
8.3 Stacking 194
8.3.1 Stacking的基本思想 194
8.3.2 Stacking的實現 195
8.4 隨機森林算法 198
8.4.1 隨機森林的特點 198
8.4.2 隨機森林算法流程 199
8.5 隨機森林算法實踐 201
8.6 美國人口普查年收入50k分類 207
8.6.1 數據預處理 208
8.6.2 模型訓練及驗證 212
第9章 人工神經網路 217
9.1 感知機模型 217
9.1.1 感知機的定義 217
9.1.2 感知機的學習策略 218
9.1.3 感知機學習算法 218
9.1.4 感知機的Python實現 226
9.2 從感知機到神經網路 236
9.3.1 BP網路算法 241
9.3.3 BP神經網路中參數的設定 249
9.4 神經網路的Python實現 253
第10章 協同過濾算法 272
10.1 協同過濾的核心 272
10.2 協同過濾的分類 272
10.3 相似性的度量方法 273
10.3.1 歐氏距離 273
10.3.4 用Python實現餘弦相似度的計算 274
10.4 基於用戶的協同過濾算法 275
10.4.1 基於物品的協同過濾算法 275
10.4.2 基於矩陣分解的協同過濾算法 276
10.4.3 Python實現 276
10.5 基於項的協同過濾算法 280
10.6 利用協同過濾算法進行推薦 281
10.6.1 導入用戶-商品數據 281
10.6.2 利用基於用戶的協同過濾算法進行推薦 282
10.6.3 利用基於項的協同過濾算法進行推薦 283
第11章 基於矩陣分解的推薦算法 285
11.1 矩陣分解 285
11.2 利用矩陣分解進行預測 286
11.2.1 損失函式 286
11.2.2 損失函式的求解 286
11.2.3 加入正則項的損失函式即求解方法 286
11.2.4 預測 288
11.2.5 程式實現 289
11.3.1 非負矩陣分解的形式定義 291
11.3.2 損失函式 291
11.3.3 最佳化問題的求解 292
11.3.4 利用乘法規則進行分解和預測 294
11.4 基於矩陣分解的推薦方法 295
11.4.1 LFM法 295
11.4.2 SVD法 298
11.4.3 SVD++法 300
第12章 集成學習 304
12.1 集成學習的原理及誤差 304
12.2 集成學習方法 305
12.2.1 Boosting算法 305
12.2.2 AdaBoost算法 305
12.2.3 AdaBoost與加法模型 309
12.2.4 提升樹 310
12.2.5 Bagging算法 313
12.2.6 誤差-分歧分解 314
12.2.7 多樣性增強 315
12.2.8 Stacking算法 316
12.3 Python實現 317
第13章 數據預處理 322
13.1 數據預處理概述 322
13.1.1 為什麼要對數據進行預處理 322
13.1.2 數據預處理的主要任務 323
13.2 去除唯一屬性 323
13.3 處理缺失值 324
13.3.1 直接使用 324
13.3.2 刪除特徵 324
13.3.3 缺失值補全 324
13.3.4 數據清理 328
13.3.5 特徵編碼 330
13.3.6 數據標準化 331
13.3.7 正則化 332
13.3.8 特徵選擇 333
13.3.9 稀疏表示和字典學習 335
13.4 Python實現 337
參考文獻 352
9.4 神經網路的Python實現 253
10.1 協同過濾的核心 272
10.2 協同過濾的分類 272
10.3 相似性的度量方法 273
10.3.1 歐氏距離 273
10.3.4 用Python實現餘弦相似度的計算 274
10.4 基於用戶的協同過濾算法 275
10.4.1 基於物品的協同過濾算法 275
10.4.2 基於矩陣分解的協同過濾算法 276
10.4.3 Python實現 276
10.5 基於項的協同過濾算法 280
10.6 利用協同過濾算法進行推薦 281
10.6.1 導入用戶-商品數據 281
10.6.2 利用基於用戶的協同過濾算法進行推薦 282
10.6.3 利用基於項的協同過濾算法進行推薦 283
第11章 基於矩陣分解的推薦算法 285
11.1 矩陣分解 285
11.2 利用矩陣分解進行預測 286
11.2.1 損失函式 286
11.2.2 損失函式的求解 286
11.2.3 加入正則項的損失函式即求解方法 286
11.2.4 預測 288
11.2.5 程式實現 289
11.3.1 非負矩陣分解的形式定義 291
11.3.2 損失函式 291
11.3.3 最佳化問題的求解 292
11.3.4 利用乘法規則進行分解和預測 294
11.4 基於矩陣分解的推薦方法 295
11.4.1 LFM法 295
11.4.2 SVD法 298
11.4.3 SVD++法 300
第12章 集成學習 304
12.1 集成學習的原理及誤差 304
12.2 集成學習方法 305
12.2.1 Boosting算法 305
12.2.2 AdaBoost算法 305
12.2.3 AdaBoost與加法模型 309
12.2.4 提升樹 310
12.2.5 Bagging算法 313
12.2.6 誤差-分歧分解 314
12.2.7 多樣性增強 315
12.2.8 Stacking算法 316
12.3 Python實現 317
9.3.3 BP神經網路中參數的設定 249
9.4 神經網路的Python實現 253
第10章 協同過濾算法 272
10.1 協同過濾的核心 272
10.2 協同過濾的分類 272
10.3 相似性的度量方法 273
10.3.1 歐氏距離 273
10.3.4 用Python實現餘弦相似度的計算 274
10.4 基於用戶的協同過濾算法 275
10.4.1 基於物品的協同過濾算法 275
10.4.2 基於矩陣分解的協同過濾算法 276
10.4.3 Python實現 276
10.5 基於項的協同過濾算法 280
10.6 利用協同過濾算法進行推薦 281
10.6.1 導入用戶-商品數據 281
10.6.2 利用基於用戶的協同過濾算法進行推薦 282
10.6.3 利用基於項的協同過濾算法進行推薦 283
第11章 基於矩陣分解的推薦算法 285
11.1 矩陣分解 285
11.2 利用矩陣分解進行預測 286
11.2.1 損失函式 286
11.2.2 損失函式的求解 286
11.2.3 加入正則項的損失函式即求解方法 286
11.2.4 預測 288
11.2.5 程式實現 289
11.3.1 非負矩陣分解的形式定義 291
11.3.2 損失函式 291
11.3.3 最佳化問題的求解 292
11.3.4 利用乘法規則進行分解和預測 294
11.4 基於矩陣分解的推薦方法 295
11.4.1 LFM法 295
11.4.2 SVD法 298
11.4.3 SVD++法 300
第12章 集成學習 304
12.1 集成學習的原理及誤差 304
12.2 集成學習方法 305
12.2.1 Boosting算法 305
12.2.2 AdaBoost算法 305
12.2.3 AdaBoost與加法模型 309
12.2.4 提升樹 310
12.2.5 Bagging算法 313
12.2.6 誤差-分歧分解 314
12.2.7 多樣性增強 315