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