實用機器學習 (Practical Machine Learning)
內容描述
大數據時代為機器學習的應用提供了廣闊的空間,各行各業涉及數據分析的工作都需要使用機器學習算法。本書圍繞實際數據分析的流程展開,著重介紹數據探索、數據預處理和常用的機器學習算法模型。本書從解決實際問題的角度出發,介紹回歸算法、分類算法、推薦算法、排序算法和集成學習算法。在介紹每種機器學習算法模型時,書中不但闡述基本原理,而且討論模型的評價與選擇。為方便讀者學習各種算法,本書介紹了R語言中相應的軟件包並給出了示例程序。
本書的一大特色就是貼近工程實踐。首先,本書僅側重介紹當前工業界常用的機器學習算法,而不追求知識內容的覆蓋面;其次,本書在介紹每類機器學習算法時,力求通俗易懂地闡述算法思想,而不追求理論的深度,讓讀者借助代碼獲得直觀的體驗。
目錄大綱
第1章引論1
1.1什麼是機器學習1
1.2機器學習算法的分類2
1.3實際應用3
1.3.1病人住院時間預測3
1.3.2信用分數估計4
1.3.3 Netflix上的影片推薦4
1.3.4酒店推薦5
1.3.5討論6
1.4本書概述7
1.4.1本書結構9
1.4.2閱讀材料及其他資源10
第2章R語言12
2.1 R的簡單介紹12
2.2 R的初步體驗13
2.3基本語法14
2.3.1語句14
2.3.2函數17
2.4常用數據結構19
2.4.1向量19
2.4.2因子23
2.4.3矩陣24
2.4.4數據框26
2.4.5列表29
2.4.6下標系統33
2.5公式對象和apply函數34
2.6 R軟件包36
2.6.1軟件包的安裝37
2.6.2軟件包的使用38
2.6.3軟件包的開發38
2.7網絡資源38
第3章數學基礎39
3.1概率39
3.1. 1基本概念39
3.1.2基本公式40
3.1.3常用分佈42
3.1.4隨機向量及其分佈43
3.1.5隨機變量的數字特徵46
3.1.6隨機向量的數字特徵48
3.2統計49
3.2.1常用數據特徵49
3.2.2參數估計52
3.3矩陣54
3.3.1基本概念54
3.3.2基本運算56
3.3.3 特徵值與特徵向量57
3.3.4矩陣分解60
3.3.5主成分分析62
3.3.6 R中矩陣的計算68
第4章數據探索和預處理74
4.1數據類型74
4.2數據探索75
4.2.1常用統計量76
4.2.2使用R實際探索數據76
4.3數據預處理82
4.3.1缺失值的處理82
4.3.2數據的標準化83
4.3.3刪除已有變量85
4.3.4數據的變換86
4.3.5構建新的變量:啞變量86
4.3.6離群數據的處理88
4.4數據可視化89
4.4.1直方圖89
4.4.2柱狀圖92
4.4.3莖葉圖95
4.4.4箱線圖96
4.4.5散點圖100
第5章回歸分析104
5.1回歸分析的基本思想104
5.2線性回歸和最小二乘法105
5.2.1最小二乘法的幾何解釋106
5.2.2線性回歸和極大似然估計107
5.3嶺回歸和Lasso 108
5.3.1嶺回歸108
5.3.2 Lasso與稀疏解110
5.3.3 Elastic Net 114
5.4回歸算法的評價和選取114
5.4.1均方差和均方根誤差114
5.4.2可決係數114
5.4. 3偏差-方差權衡115
5.5案例分析118
5.5.1數據導入和探索118
5.5.2數據 預處理120
5.5.3將數據集分成訓練集和測試集121
5.5.4建立一個簡單的線性回歸模型121
5.5.5建立嶺回歸和Lasso模型122
5.5.6選取合適的模型124
5.5.7構造新的變量126
5.6小結126
第6章分類算法127
6.1分類的基本思想127
6.2決策樹130
6.2.1基本原理130
6.2.2決策樹學習131
6.2.3過擬合和剪枝138
6.2.4實際使用139
6.2.5討論148
6.3邏輯回歸148
6.3.1 sigmoid函數的性質148
6.3.2通過極大似然估計來估計參數149
6.3.3牛頓法151
6.3.4正則化項的引入153
6.3.5實際使用154
6.4支持向量機161
6.4.1基本思想:最大化分類間隔161
6.4.2最大分類間隔的數學表示163
6.4.3如何處理線性不可分的數據164
6.4.4 Hinge損失函數166
6.4.5對偶問題168
6.4.6非線性支持向量機和核技巧170
6.4.7實際使用173
6.5損失函數和不同的分類算法175
6.5.1損失函數175
6.5.2正則化項178
6.6交叉檢驗和caret包180
6.6. 1模型選擇和交叉 驗180
6.6.2在R中實現交叉檢驗以及caret包182
6.7分類算法的評價和比較192
6.7.1準確率193
6.7.2混淆矩陣193
6.7.3精確率、召回率和F1度量195
6.7.4 ROC曲線和AUC 196
6.7.5 R中評價標準的計算199
6.8不平衡分類問題201
6.8.1使用不同的算法評價標準201
6.8.2樣本權值201
6.8.3取樣方法202
6.8.4代價敏感學習203
第7章推薦算法205
7.1推薦系統基礎205
7.1.1常用符號208
7.1.2推薦算法的評價標準209
7.2基於內容的推薦算法210
7.3基於矩陣分解的算法211
7.3.1無矩陣分解的基準方法211
7.3.2基於奇異值分解的推薦算法212
7.3.3基於SVD推薦算法的變體216
7.4基於鄰域的推薦算法222
7.4.1基於用戶的鄰域推薦算法223
7.4.2基於商品的鄰域推薦算法225
7.4.3混合算法226
7.4.4相似度的計算227
7.5 R中recommenderlab的實際使用232
7.6推薦算法的評價和選取250
第8章排序學習253
8.1排序學習簡介253
8.1.1解決排 問題的基本思路254
8.1.2構造特徵255
8.1.3獲取相關度分數256
8.1.4數學符號257
8.2排序算法的評價257
8.2.1 MAP 258
8.2.2 DCG 260
8.2.3 NDCG 261
8.2.4討論261
8.3逐點方法262
8.3.1基於SVM的逐點排序方法263
8.3.2逐點方法討論264
8.4逐對方法265
8.4.1 Ranking SVM算法265
8.4.2 IR-SVM算法266
8.4.3 RankNet算法267
8.4.4 LambdaRank算法271
8.4.5 LambdaMART算法273
8.5逐列方法279
8.5.1 SVMmap算法279
8.5.2討論283
第9章集成學習284
9.1集成學習簡介284
9.2 bagging簡介285
9.3隨機森林289
9.3. 1訓練隨機森林的基本流程289
9.3.2利用隨機森林估計變量的重要性290
9.3.3隨機森林的實際使用291
9.4 boosting簡介300
9.4.1 boosting和指數損失函數301
9.4.2 AdaBoost算法302
9.4. 3 AdaBoost的實際使用306
9.4.4討論311
9.5提升決策樹和梯度提升算法311
9.5.1提升決策樹和梯度提升算法的基本原理311
9.5.2如何避免過擬合315
9.5.3 gbm包的實際使用31 8
9.5.4討論327
9.6學習器的聚合及stacking 328
9.6.1簡單平均328
9.6.2加權平均329
9.6.3 stacking的基本思想及應用329
9.7小結331
參考文獻332
索引334
作者介紹
孫亮,阿里巴巴數據科學與技術研究院高級專家。曾任微軟Azure機器學習(Azure Machine Learning)部門高級數據科學家,先後畢業於南京大學計算機系(1999-2003)、中國科學院軟件研究所(2003-2006)、美國亞利桑那州立大學計算機系(2006-2011 ),研究興趣包括機器學習、數據挖掘及其實際應用等。近年來參加了KDD Cup、Heritage HealthPrize等多項數據挖掘競賽並多次取得優異成績。在IEEE T-PAMI、NIPS、ICML、SIGKDD等機器學習領域的知名國際期刊和國際會議上發表論文近20篇,著有機器學習英文專著1部。
黃倩,河海大學副研究員,先後畢業於南京大學計算機系(1999-2003)、中國科學院計算技術研究所(2003-2010),研究興趣包括多媒體大數據處理、機器學習、雲計算等。參加過多個973、863、國家自然科學基金項目的研究,參與過AVS、H.265/HEVC等國內外視頻壓縮標準的製訂。現主持包括國家自然科學基金在內的多個國家、省市級項目,並獲南京市江寧區首批高層次創業人才“創聚工程”項目資助。在相關領域的知名國際期刊和國際會議上發表論文逾20篇,出版譯著4本,參編專著1部。