本書是為大學本科、研究生學習參考材料,以講原理、完全開放源代碼、使用公開數(shù)據(jù)集、實驗效果演示為特色。既適合本科生、研究生教學使用,也適合自學。
為了配合教師教學及同學們自學,本書提供了配套教學的ppt和所有章節(jié)的源代碼。
不管是機器學習的工程研發(fā),還是機器學習方向的研究型實驗,本書,都值得擁有!
前言現(xiàn)在,大數(shù)據(jù)、社交網(wǎng)絡、計算智能、深度學習等詞匯都已經(jīng)成為人們日常生活中經(jīng)?吹降臒衢T專業(yè)名詞。如果我們考慮這些領域的共性,那么機器學習一定是重要的交集部分。很多來自不同領域、不同角色的學生、工作人員都在加入學習機器學習的隊伍。
本書的編寫面向正走在或即將走向學習機器學習路上的廣大讀者。我們在日常教學和培養(yǎng)研究生過程中發(fā)現(xiàn),很多學生一方面想學、愿意學機器學習,另一方面又遇到入門難的問題,希望能有一本書、一本教材講原理、給數(shù)據(jù)、給源碼、給實驗,帶著入門。鑒此我們編寫了這本書,選擇了機器學習領域的十大經(jīng)典算法,把我們平常培養(yǎng)
剛入校研究生的算法材料進行整理,提供給廣大希望學習的讀者朋友們。
本書在整體章節(jié)的安排上,按照監(jiān)督{KNN(分類),Bayes(分類),C4.5(分類),SVM(分類),AdaBoost(分類),CART(回歸)}和無監(jiān)督{KMeans(聚類),Apriori(關聯(lián)規(guī)則),PageRank(排序),EM(參數(shù)估計)}的順序組織。在每一章的講解中,從講故事開始講解算法原理,接著分別從算法實現(xiàn)類/方法流程圖、類/方法說明表、關鍵代碼講解算法實現(xiàn),然后給出實驗數(shù)據(jù),最后給出實驗結果與分析,盡量做到簡單易懂。每章完整的源代碼掃描下面二維碼即可下載,每個算法對應一個Java工程,實驗數(shù)據(jù)都在每個工程的data文件夾下。代碼風格盡量保持一致,讓讀者更容易理解。
掃碼下載完整代碼及實驗數(shù)據(jù)
本書的寫作工作是由我們實驗室兩位老師(肖云鵬和劉宴兵教授)以及復旦大學盧星宇博士、清華大學許明博士、CMU汪浩瀚博士和北京郵電大學吳斌教授共同完成,幾位作者都是長期在機器學習領域從事科學研究、工程實踐、項目合作的科研人員和高校工作者。我們的想法是通過努力,以開放的心態(tài),幫助更多的希望學習機器學習的讀者。
即使只是作為一本入門級的學習讀物,整個書稿前前后后也修改了幾十稿。同時我們也參考學習了很多機器學習方面的書籍和網(wǎng)絡資源,真高興當下國內有許多學者、產(chǎn)業(yè)界人員和互聯(lián)網(wǎng)熱心人提供這么多優(yōu)秀的學習資源。誠然,即便是我們非常努力地完善書稿,由于水平有限和時間倉促,書中可能還會有這樣或那樣的問題,請讀者批評指正。另外,算法自身也在不斷更新,凡是內容有更新的地方都會體現(xiàn)在本書的后繼版本中,我們也希望本書的第二版、第三版等不僅是內容的進一步完善,還會加入更多有趣的算法,從傳統(tǒng)機器學習到深度學習、增強學習。其實,機器學習經(jīng)典算法又何止這十大呢!
最后,感謝我的家人對我工作的支持,感謝實驗室學生們在本書的寫作過程中幫著收集材料、提意見、討論書稿,所有的過程都是美好回憶。
本書的完成得到國家973重點基礎研究發(fā)展計劃(No.2013CB329606)、重慶市重點研發(fā)項目(No.cstc2017zdcyzdyf0299,No.cstc2017zdcyzdyf0436)、重慶市基礎科學與前沿技術研究項目(No.cstc2017jcyjAX0099)和重慶郵電大學出版基金資助。
肖云鵬2018年4月
目錄
●第1章KNN
1.1KNN算法原理
1.1.1算法引入
1.1.2科學問題
1.1.3算法流程
1.1.4算法描述
1.1.5補充說明
1.2KNN算法實現(xiàn)
1.2.1簡介
1.2.2核心代碼
1.3實驗數(shù)據(jù)
1.4實驗結果
1.4.1結果展示
1.4.2結果分析
●第2章樸素貝葉斯
2.1樸素貝葉斯算法原理
2.1.1樸素貝葉斯算法引入
2.1.2科學問題
2.1.3算法流程
2.1.4算法描述
2.1.5算法補充
2.2樸素貝葉斯算法實現(xiàn)
2.2.1簡介
2.2.2核心代碼
2.3實驗數(shù)據(jù)
2.4實驗結果
2.4.1結果展示
2.4.2結果分析
●第3章C4.5
3.1C4.5算法原理
3.1.1C4.5算法引入
3.1.2科學問題
3.1.3算法流程
3.1.4算法描述
3.1.5補充說明
3.2C4.5算法實現(xiàn)
3.2.1簡介
3.2.2核心代碼
3.3實驗數(shù)據(jù)
3.4實驗結果
3.4.1結果展示
3.4.2結果分析
●第4章SVM
4.1SVM算法原理
4.1.1算法引入
4.1.2科學問題
4.1.3算法流程
4.1.4算法描述
4.1.5補充說明
4.2SVM算法實現(xiàn)
4.2.1簡介
4.2.2核心代碼
4.3實驗數(shù)據(jù)
4.4實驗結果
4.4.1結果展示
4.4.2結果分析
●第5章AdaBoost
5.1AdaBoost算法原理
5.1.1算法引入
5.1.2科學問題
5.1.3算法流程
5.1.4算法描述
5.1.5補充說明
5.2AdaBoost算法實現(xiàn)
5.2.1簡介
5.2.2核心代碼
5.3實驗數(shù)據(jù)
5.4實驗結果
5.4.1結果展示
5.4.2結果分析
●第6章CART
6.1CART算法原理
6.1.1算法引入
6.1.2科學問題
6.1.3算法流程
6.1.4算法描述
6.1.5補充說明
6.2CART算法實現(xiàn)
6.2.1簡介
6.2.2核心代碼
6.3實驗數(shù)據(jù)
6.4實驗結果
6.4.1結果展示
6.4.2結果分析
●第7章KMeans
7.1KMeans算法原理
7.1.1算法引入
7.1.2科學問題
7.1.3算法流程
7.1.4算法描述
7.1.5補充說明
7.2KMeans算法實現(xiàn)
7.2.1簡介
7.2.2核心代碼
7.3實驗數(shù)據(jù)
7.4實驗結果
7.4.1結果展示
7.4.2結果分析
●第8章Apriori
8.1Apriori算法原理
8.1.1算法引入
8.1.2科學問題
8.1.3算法流程
8.1.4算法描述
8.2Apriori算法實現(xiàn)
8.2.1簡介
8.2.2核心代碼
8.3實驗數(shù)據(jù)
8.4實驗結果
8.4.1結果展示
8.4.2結果分析
●第9章PageRank
9.1PageRank算法原理
9.1.1PageRank算法引入
9.1.2科學問題
9.1.3算法流程
9.1.4算法描述
9.2PageRank算法實現(xiàn)
9.2.1簡介
9.2.2核心代碼
9.3實驗數(shù)據(jù)
9.4實驗結果
9.4.1結果展示
9.4.2結果分析
●第10章EM
10.1EM算法原理
10.1.1EM算法引入
10.1.2科學問題
10.1.3理論推導
10.1.4算法流程
10.1.5算法描述
10.2EMGMM實現(xiàn)
10.2.1簡介
10.2.2核心代碼
10.3實驗數(shù)據(jù)
10.4實驗結果
10.4.1結果展示
10.4.2結果分析
參考文獻