機器學習基礎:從入門到求職( 簡體 字) | |
作者:胡歡武 | 類別:1. -> 程式設計 -> 機器學習 |
出版社:電子工業出版社 | 3dWoo書號: 50820 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:3/1/2019 | |
頁數:384 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121355219 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 機器學習概述 1
1.1 機器學習介紹 1 1.1.1 機器學習的特點 1 1.1.2 機器學習的對象 2 1.1.3 機器學習的應用 4 1.2 機器學習分類 5 1.2.1 按任務類型分類 5 1.2.2 按學習方式分類 7 1.2.3 生成模型與判別模型 9 1.3 機器學習方法三要素 11 1.3.1 模型 11 1.3.2 策略 13 1.3.3 算法 14 1.3.4 小結 23 第2章 機器學習工程實踐 24 2.1 模型評估指標 24 2.1.1 回歸模型的評估指標 24 2.1.2 分類模型的評估指標 25 2.1.3 聚類模型的評估指標 33 2.1.4 常用距離公式 37 2.2 模型復雜度度量 40 2.2.1 偏差與方差 40 2.2.2 過擬合與正則化 42 2.3 特征工程與模型調優 47 2.3.1 數據挖掘項目流程 47 2.3.2 特征工程 50 2.3.3 模型選擇與模型調優 57 第3章 線性回歸 63 3.1 問題引入 63 3.2 線性回歸模型 64 3.2.1 模型建立 64 3.2.2 策略確定 65 3.2.3 算法求解 66 3.2.4 線性回歸模型流程 67 3.3 線性回歸的scikit-learn實現 67 3.3.1 普通線性回歸 68 3.3.2 Lasso回歸 69 3.3.3 嶺回歸 70 3.3.4 ElasticNet回歸 71 3.4 線性回歸實例 73 3.5 小結 75 第4章 樸素貝葉斯 77 4.1 概述 77 4.2 相關原理 77 4.2.1 樸素貝葉斯基本原理 77 4.2.2 原理的進一步闡述 79 4.2.3 后驗概率最大化的含義 82 4.2.4 拉普拉斯平滑 83 4.3 樸素貝葉斯的三種形式及scikit-learn實現 84 4.3.1 高斯型 84 4.3.2 多項式型 85 4.3.3 伯努利型 86 4.4 中文文本分類項目 87 4.4.1 項目簡介 87 4.4.2 項目過程 87 4.4.3 完整程序實現 94 4.5 小結 100 第5章 K近鄰 102 5.1 概述 102 5.2 K近鄰分類原理 102 5.2.1 K值的選擇 103 5.2.2 距離度量 103 5.2.3 分類決策規則 104 5.2.4 K近鄰分類算法過程 105 5.3 K近鄰回歸原理 106 5.3.1 回歸決策規則 106 5.3.2 K近鄰回歸算法過程 106 5.4 搜索優化——KD樹 107 5.4.1 構造KD樹 107 5.4.2 搜索KD樹 108 5.5 K近鄰的scikit-learn實現 110 5.5.1 K近鄰分類 110 5.5.2 K近鄰回歸 112 5.6 K近鄰應用實例 112 5.7 小結 115 第6章 決策樹 117 6.1 概述 117 6.2 特征選擇 119 6.2.1 信息增益 119 6.2.2 信息增益比 122 6.2.3 基尼指數 123 6.3 決策樹生成 124 6.3.1 ID3決策樹 124 6.3.2 C4.5決策樹 125 6.3.3 CART決策樹 126 6.4 決策樹剪枝 131 6.5 決策樹的scikit-learn實現 133 6.6 決策樹應用于文本分類 135 6.7 小結 138 第7章 Logistic回歸 140 7.1 Logistic回歸概述 140 7.2 Logistic回歸原理 140 7.2.1 Logistic回歸模型 140 7.2.2 Logistic回歸學習策略 141 7.2.3 Logistic回歸優化算法 142 7.3 多項Logistic回歸 144 7.4 Logistic回歸的scikit-learn實現 144 7.5 Logistic回歸實例 146 7.6 小結 153 第8章 支持向量機 155 8.1 感知機 155 8.1.1 感知機模型 155 8.1.2 感知機學習策略 157 8.1.3 感知機優化算法 159 8.1.4 感知機模型整體流程 159 8.1.5 小結 160 8.2 硬間隔支持向量機 160 8.2.1 引入 160 8.2.2 推導 161 8.3 軟間隔支持向量機 169 8.4 合頁損失函數 176 8.5 非線性支持向量機 177 8.6 SVM的scikit-learn實現 180 8.6.1 線性SVM 180 8.6.2 非線性SVM 181 8.7 SVM實例 182 8.8 小結 184 第9章 隨機森林 186 9.1 Bagging 186 9.2 隨機森林概念 188 9.3 RF的推廣——extra trees 188 9.4 RF的scikit-learn實現 189 9.5 RF的scikit-learn使用實例 192 9.5.1 程序 193 9.5.2 結果及分析 195 9.5.3 擴展 198 9.6 小結 200 第10章 AdaBoost 202 10.1 AdaBoost的結構 202 10.1.1 AdaBoost的工作過程 203 10.1.2 AdaBoost多分類問題 204 10.1.3 AdaBoost回歸問題 208 10.2 AdaBoost的原理 210 10.3 AdaBoost的scikit-learn實現 212 10.4 AdaBoost應用實例 214 10.5 AdaBoost模型的優缺點 217 第11章 提升樹 218 11.1 提升樹的定義 218 11.2 梯度提升樹 223 11.2.1 梯度提升樹的原理推導 224 11.2.2 GBDT和GBRT模型的處理過程 226 11.2.3 梯度提升模型的scikit-learn實現 227 11.2.4 梯度提升模型的scikit-learn使用實例 230 11.2.5 GBDT模型的優缺點 236 11.3 XGBoost 236 11.3.1 XGBoost的原理 236 11.3.2 XGBoost調參 239 11.3.3 XGBoost與GBDT的比較 241 第12章 聚類 243 12.1 聚類問題介紹 243 12.2 K-Means聚類 244 12.2.1 K-Means聚類過程和原理 244 12.2.2 K-Means算法優化 247 12.2.3 小結 248 12.2.4 K-Means應用實例 248 12.3 層次聚類 252 12.3.1 層次聚類的過程和原理 252 12.3.2 小結 254 12.3.3 層次聚類應用實例 254 12.4 密度聚類算法 256 12.4.1 密度聚類算法過程和原理 256 12.4.2 密度聚類小結 258 12.4.3 密度聚類應用實例 259 12.5 譜聚類 262 12.5.1 譜聚類的過程和原理 262 12.5.2 譜聚類小結 269 12.5.3 譜聚類應用實例 270 12.6 高斯混合模型 272 12.6.1 高斯混合聚類過程和原理 272 12.6.2 EM算法 274 12.6.3 小結 279 12.6.4 GMM應用實例 279 第13章 降維 282 13.1 奇異值分解 282 13.1.1 矩陣的特征分解 282 13.1.2 奇異值分解 283 13.2 主成分分析 286 13.2.1 PCA原理推導 287 13.2.2 核化PCA 293 13.2.3 PCA/KPCA的scikit-learn實現 293 13.3 線性判別分析 300 13.3.1 LDA原理推導 300 13.3.2 LDA與PCA的比較 305 13.3.3 LDA應用實例 306 13.4 局部線性嵌入 309 13.4.1 局部線性嵌入介紹 309 13.4.2 局部線性嵌入過程和原理 309 13.4.3 LLE應用實例 314 第14章 Word2Vec和Doc2Vec詞向量模型 317 14.1 Word2Vec 317 14.1.1 Word2Vec概述 317 14.1.2 基于Hierarchical Softmax方法的CBOW模型 318 14.1.3 基于Hierarchical Softmax方法的Skip-Gram模型 322 14.1.4 基于Negative Sampling方法的CBOW模型 323 14.1.5 基于Negative Sampling方法的Skip-Gram模型 326 14.1.6 Word2Vec應用實例 327 14.2 Doc2Vec模型 329 14.2.1 Doc2Vec模型原理 329 14.2.2 Doc2Vec應用實例 331 第15章 深度神經網絡 335 15.1 深度學習 335 15.1.1 概述 335 15.1.2 深度學習發展歷史 336 15.2 神經網絡原理 341 15.2.1 前向傳播 341 15.2.2 反向傳播 343 15.2.3 實例 347 15.2.4 幾種常用激活函數 354 15.2.5 梯度消失與梯度爆炸 357 15.2.6 幾種常用的優化算法 358 15.3 神經網絡應用實例 363 15.4 小結 366 本書是一本機器學習算法方面的理論+實踐讀物,主要包含機器學習基礎理論、回歸模型、分類模型、聚類模型、降維模型和深度學習模型六大部分。機器學習基礎理論部分包含第1、2章,主要介紹機器學習的理論基礎和工程實踐基礎。第3章是回歸模型部分,主要包括模型的建立、學習策略的確定和優化算法的求解過程,最后結合三種常見的線性回歸模型實現了一個房價預測的案例。第4至11章詳細介紹了幾種常見的分類模型,包括樸素貝葉斯模型、K近鄰模型、決策樹模型、Logistic回歸模型、支持向量機模型、隨機森林模型、AdaBoost模型和提升樹模型,每一個模型都給出了較為詳細的推導過程和實際應用案例。第12章系統介紹了五種常見的聚類模型,包括K-Means聚類、層次聚類、密度聚類、譜聚類和高斯混合聚類,每一個模型的原理、優缺點和工程應用實踐都給出了較為詳細的說明。第13章系統介紹了四種常用的降維方式,包括奇異值分解、主成分分析、線性判別分析和局部線性嵌入,同樣給出了詳細的理論推導和分析。最后兩章分別是詞向量模型和深度神經網絡模型,其中,詞向量模型詳細介紹了Word2Vec和Doc2Vec模型的原理推導和應用;深度神經網絡模型系統介紹了深度學習相關的各類基礎知識。本書適合對人工智能和機器學習感興趣的學生、求職者和已工作人士,以及想要使用機器學習這一工具的跨行業者(有最基本的高等數學、線性代數、概率基礎即可),具體判別方法建議您閱讀本書的前言。
首先解答讀者可能產生的一個疑問:本書的書名是《機器學習基礎:從入門到求職》,但本書幾乎通篇都在講機器學習各種模型的原理推導和應用實例,這是為什么呢?其實本書的定位是幫助求職者快速入門并掌握機器學習相關的基礎核心知識,降低學習成本,節省更多的時間。
為什么要這樣做呢?原因也很簡單。機器學習算法相關的崗位待遇比一般的開發崗位要好一些,但要求也變得更多。從目前的行情來看,站在公司招聘的角度,是一個既要、又要、還要的過程,即:既要掌握比較扎實的機器學習理論基礎,又要有實踐經驗、懂業務場景,還要能編碼、會計算機算法題。 對求職者來說,要求確實是太高了些。但這個崗位待遇好,有前途,也有“錢途”,因而很多人都報以極高的熱情涌入,導致這個行業的招聘水漲船高,畢竟企業永遠都是擇優而選,優中取優!親歷過這幾年求職或招聘的人可能會比較有感觸: 2015年,機器學習在國內市場剛興起的時候,懂機器學習算法的人不多,那時候企業招聘,只要是懂些皮毛的,可能都有機會去試一試。 2016年,市場開始火熱,只懂些皮毛就不行了,必須還要懂得比較系統一點,要求求職者能夠“手推”模型原理,再附加一些業務實踐經驗和計算機基礎知識。 2017年,招聘的人不僅會問手推算法原理,還會細問項目內容及對業務的理解,再附加兩道算法題。 2018年,招聘方希望你既要像算法工程師一樣能“手推”模型原理,又要像傳統程序員一樣會寫代碼,還要像有工作經驗的員工一樣,有一些比較拿得出手的項目。 看到這里,如果你被這么多的要求嚇到了,那么恭喜你,借這個心理轉換過程重新定位自己,你可以學習本書;如果你決定迎難而上,那么也恭喜你,借這個機會趕緊查漏補缺,同樣可以閱讀本書。但是,如果你是計算機科班出身,已經信心滿滿,手握重點高校學歷,重大科研項目經歷,各種大廠實習經驗,還有多篇“頂會”論文,那么這本書真的不適合你。 回到關于本書的定位問題上。上面說了既要、又要、還要的過程,也就是理論基礎+業務能力+工程實踐能力的過程。理論基礎就是我們一直所說的機器學習算法理論,業務能力是指相關的項目或者工作經驗,工程實踐能力就是動手寫代碼的能力。對于一個想求職機器學習相關崗位的應屆生,或者是想將機器學習應用到自己專業領域的人士,再或者是一個有一定編程經驗想要轉算法崗位的人來說,機器學習理論可能都是第一攔路虎。本書希望可以幫助讀者用最短的時間、最少的精力,攻克這最難的一關。所以,再次提醒大家,本書并沒有講述如何面試求職,而是可以帶你快速入門并應用機器學習,帶你走近機器學習求職的起點,幫你節省一些學習和摸索的時間,本書并不是一本機器學習崗位求職大全,也絕非是你求職準備的終點。 如果看到這里,還不確定是否適合學習本書,那么看看本書的“機器學習求職60問”吧,這些都是求職過程中可能遇到的高頻問題,也是機器學習需要掌握的核心理論基礎,而這些問題,在本書中都有較為詳細的推導和解答。如果你看了這些問題以后覺得都已經掌握了,那么本書不適合你。如果對一半以上問題覺得沒什么概念或者似懂非懂,那么建議你看一看本書,相信你會有所收獲的! 機器學習求職60問 類型一:基礎概念類 問題1:過擬合與欠擬合(定義、產生的原因、解決的方法各是什么)。 問題2:L1正則與L2正則(有哪些常見的正則化方法?作用各是什么?區別是什么?為什么加正則化項能防止模型過擬合)。 問題3:模型方差和偏差(能解釋一下機器學習中的方差和偏差嗎?哪些模型是降低模型方差的?哪些模型是降低模型偏差的?舉例說明一下)。 問題4:奧卡姆剃刀(說一說機器學習中的奧卡姆梯刀原理)。 問題5:模型評估指標(回歸模型和分類模型各有哪些常見的評估指標?各自的含義是什么?解釋一下AUC?你在平時的實踐過程中用到過哪些評估指標?為什么要選擇這些指標)。 問題6:風險函數(說一下經驗風險和結構風險的含義和異同點)。 問題7:優化算法(機器學習中常見的優化算法有哪些?梯度下降法和牛頓法的原理推導)。 問題8:激活函數(神經網絡模型中常用的激活函數有哪些?說一下各自的特點)。 問題9:核函數(核函數的定義和作用是什么?常用的核函數有哪些?你用過哪些核函數?說一下高斯核函數中的參數作用)。 問題10:梯度消失與梯度爆炸(解釋一下梯度消失與梯度爆炸問題,各自有什么解決方案)。 問題11:有監督學習和無監督學習(說一下有監督學習和無監督學習的特點,舉例說明一下)。 問題12:生成模型與判別模型(你知道生成模型和判別模型嗎?各自的特點是什么?哪些模型是生成模型,哪些模型是判別模型)。 類型二:模型原理類 問題13:線性回歸(線性回歸模型的原理、損失函數、正則化項)。 問題14:KNN模型(KNN模型的原理、三要素、優化方案以及模型的優缺點)。 問題15:樸素貝葉斯(樸素貝葉斯模型的原理推導,拉普拉斯平滑,后驗概率最大化的含義以及模型的優缺點)。 問題16:決策樹(決策樹模型的原理、特征評價指標、剪枝過程和原理、幾種常見的決策樹模型、各自的優缺點)。 問題17:隨機森林模型(RF模型的基本原理,RF模型的兩個“隨機”。從偏差和方差角度說一下RF模型的優缺點,以及RF模型和梯度提升樹模型的區別)。 問題18:AdaBoost(AdaBoost模型的原理推導、從偏差和方差角度說一下AdaBoost、AdaBoost模型的優缺點)。 問題19:梯度提升樹模型(GBDT模型的原理推導、使用GBDT模型進行特征組合的過程、GBDT模型的優缺點)。 問題20:XGBoost(XGBoost模型的基本原理、XGBoost模型和GBDT模型的異同點、XBGoost模型的優缺點)。 問題21:Logistic回歸模型(LR模型的原理、本質,LR模型的損失函數,能否使用均方損失、為什么)。 問題22:支持向量機模型(SVM模型的原理,什么是“支持向量”?為什么使用拉格朗日對偶性?說一下KKT條件、軟間隔SVM和硬間隔SVM的異同點。SVM怎樣實現非線性分類?SVM常用的核函數有哪些?SVM模型的優缺點各是什么)。 問題23:K-Means聚類(K-Means聚類的過程和原理是什么?優化方案有哪些?各自優缺點是什么)。 問題24:層次聚類(層次聚類的過程、原理和優缺點)。 問題25:密度聚類(密度聚類的基本原理和優缺點)。 問題26:譜聚類(譜聚類的基本原理和優缺點)。 問題27:高斯混合聚類(高斯混合聚類的原理和優缺點)。 問題28:EM算法(EM算法的推導過程和應用場景)。 問題29:特征分解與奇異值分解(特征分解與奇異值分解的原理、異同點、應用場景)。 問題30:主成分分析(PCA模型的原理、過程、應用場景)。 問題31:線性判別分析(LDA模型的原理、過程、應用場景)。 問題32:局部線性嵌入(LLE模型的原理、過程、應用場景)。 問題33:詞向量(Word2Vec模型和Doc2Vec模型的類別,各自原理推導、應用和參數調節)。 問題34:深度神經網絡(深度神經網絡模型的原理,反向傳播的推導過程,常用的激活函數,梯度消失與梯度爆炸問題怎么解決?說一下深度神經網絡中的Dropout、早停、正則化)。 類型三:模型比較類 問題35:LR模型與SVM模型的異同點。 問題36:LR模型與樸素貝葉斯模型的異同點。 問題37:KNN模型與K-Means模型的異同點。 問題38:ID3、C4.5、CART模型的異同點。 問題39:PCA模型與LDA模型的異同點。 問題40:Bagging方式和Boosting模型的異同點。 問題41:GBDT模型與XGBoost模型的異同點。 問題42:Word2Vec模型中CWOB模式與Skip模式的異同點。 問題43:Word2Vec模型和Doc2Vec模型的異同點。 類型四:模型技巧類 問題44:模型調參(隨便選一個上述涉及的模型,說一下它的調參方式與過程)。 問題45:特征組合(常見的特征組合方式有哪些?各自特點是什么)。 問題46:特征工程(結合實踐解釋一下你所理解的特征工程)。 問題47:缺失值問題(說一下你遇到的缺失值處理問題,你知道哪些缺失值處理方式?你使用過哪些,效果怎樣)。 問題48:樣本不平衡問題(你知道樣本不平衡問題嗎?你是怎樣處理的?效果怎么樣?除上采樣和下采樣外,你還能自己設計什么比較新穎的方式嗎)。 問題49:特征篩選(特征篩選有哪幾種常見的方式?結合自己的實踐經驗說一下各自的原理和特點。) 問題50:模型選擇(你一般怎樣挑選合適的模型?有實際的例子嗎?) 問題51:模型組合(你知道哪些模型組合方式?除了運用AdaBoost和RF等模型,你自己有使用過Bagging和Embedding方式組合模型嗎?結合實際例子說明一下)。 問題52:AB測試(了解AB測試嗎?為什么要使用AB測試)。 問題53:降維(為什么要使用降維?你知道哪些降維方法?你用過哪些降維方式?結合實際使用說明一下)。 問題54:項目(你做過哪些相關的項目?挑一個你覺得印象最深刻的說明一下)。 問題55:踩過的坑(你在使用機器學習模型中踩過哪些坑?最后你是如何解決的)。 類型五:求職技巧類 問題56:機器學習求職要準備哪些項?各項對應如何準備? 問題57:機器學習相關的學習內容有哪些?學習路線應該怎么定?有什么推薦的學習資料? 問題58:機器學習崗求職的投遞方式有哪些?什么時間投遞最合適?投遞目標應該怎樣選擇? 問題59:機器學習崗求職的簡歷最好寫哪些內容?所做的項目應該如何描述? 問題60:面試過程中自我介紹如何說比較合適?求職心態應該如何擺正?如果遇到壓力該如何面對?面試過程中如何掌握主導權?怎樣回答面試官最后的“你還有什么要問我的”問題?怎樣面對最后的人力資源面試? 致謝 首先,我要感謝每一位為此書做出貢獻的人和每一位讀者,你們的認可與鼓勵是我堅持寫作的源動力,希望本書的內容可以給你們帶來一份驚喜! 其次,我要感謝我的妻子彭璐。這些年我們一路從校園戀愛走到今天,過程真的十分不易。謝謝你一路對我的陪伴與付出,你就是我人生中最好的伯樂! 最后,我要感謝我的父母和兄弟。謝謝你們這么多年來對我的付出與支持,不管遇到什么困難,你們總是默默地站在我身后,給了我無窮的動力! 胡歡武 2018年12月 |