本書的寫作目的旨在幫助大量正走在、或即將走向學習機器學習路上的廣大讀者朋友。我們在日常教學和培養研究生過程中發現,很多同學一方面想學、愿意學;另一方面又遇到入門難的問題,希望能有一本書旨在幫助正走在或即將走向學習機器學習路上的廣大讀者朋友。我們在日常教學和培養研究生過程中發現,很多同學一方面想學、愿意學; 另一方面又遇到入門難的問題,希望能有一本書、一本教材講原理、給數據、給源碼、給實驗,帶著入門。本著這樣一個初衷,我們選擇了機器學習領域析十大經典算法,把我們平常培養碩士研究生一年級剛入校學生的算法材料整理,開放提供給廣大希望學習的讀者朋友,寫一本機器學習入門級的學習材料。每章完整的源代碼掃描二維碼即可下載,每個算法一個Python工程,實驗數據就在每個工程的data文件夾下。代碼風格盡量保持一致,讓讀者更容易理解。 本書可作為高等學校各專業機器學習及相關課程的教學參考書。本書、一本教材講原理、給數據、給源碼、給實驗,帶著入門。
帶您啟航機器學習的風帆
用簡單的方式講述復雜的算法
提供完整Python代碼及實驗數據下載
本書為《機器學習經典算法實踐(JAVA版)》的姊妹篇。應讀者要求,由于當前Python語言在機器學習領域的廣泛使用,本次出版由書稿寫作組李茜博士牽頭,將原書稿中全部算法使用Python語言實現。同時,為了保證和原書Java版代碼風格一致,在Python實現時盡量保證原有的類設計、函數設計思想。爭取做到將原書的JAVA實現翻譯成Python實現。
當前,大數據、社交網絡、計算智能、深度學習等詞匯都已經成為我們日常生活中經常看到的熱門專業名詞了。如果我們考慮一下這些領域的共性,那么機器學習一定是重要的交集部分。很多來自不同領域、承擔不同角色的學生、工作人員都在加入學習機器學習的隊伍。
本書旨在幫助正走在或即將走向學習機器學習路上的廣大讀者朋友。我們在日常教學和培養研究生過程中發現,很多同學一方面想學、愿意學; 另一方面又遇到入門難的問題,希望能有一本書、一本教材講原理、給數據、給源碼、給實驗,帶著入門。本著這樣一個初衷,我們選擇了機器學習領域的十大經典算法,把我們平常培養研一剛入校學生的算法材料整理,開放提供給廣大希望學習的讀者朋友,寫一本機器學習入門級的學習材料。
在整體章節的安排上,按照: 監督{KNN(分類),Bayes(分類),C4.5(分類),SVM(分類),AdaBoost(分類),CART(回歸)},無監督{KMeans(聚類),Apriori(關聯規則),PageRank(排序),EM(參數估計)}的順序組織章節。在每一章的講解中,我們以講故事開始講解算法原理,接著分別從算法實現類/方法流程圖、類/方法說明表、關鍵代碼講解算法實現,然后給出實驗數據,后給出實驗結果與分析,寫作上盡量做到簡單易懂。每章完整的源代碼掃描下面二維碼即可下載,每個算法一個Python工程,實驗數據就在每個工程的data文件夾下。代碼風格盡量保持一致,讓讀者更容易理解。
參與本書寫作工作的幾位作者都是長期在機器學習領域從事科學研究、工程實踐、項目合作的科研人員和高校工作者。我們的想法是通過我們的努力,以開放的心態,能夠幫助到更多的希望學習機器學習的讀者。
即使是作為一本入門級的學習讀物,整個書稿從開始有這個想法到后出版前前后后也修改幾十稿。同時我們也參考學習了很多機器學習的書籍和網絡資源,真高興當下國內有許多學者、產業界人員和互聯網熱心人提供這么多優秀的學習資源。誠然,即便是我們非常努力完善書稿,由于我們水平有限和時間倉促,可能還會有這樣或那樣的問題,還請讀者海涵,并懇請批評指正。另外,我們算法自身也在更新迭代,凡是內容有更新的地方都會體現在本書的后繼版本中,我們也希望本書的第二版、第三版等不僅僅是內容的更誤,還會加入更多有趣的算法,從傳統機器學習到深度學習、增強學習。其實,機器學習經典算法又何止十大呢。
后,感謝所有直接或間接參與支持本書寫作的同事朋友,感謝實驗室學生在本書的寫作過程中幫著收集材料、提意見、討論書稿,所有的過程都是美好回憶。
本書的完成得到國家重點研發計劃(2021YFF0704102)、國家自然科學基金(No. 62006032,62072066)、重慶市教育委重點合作項目(HZ2021008)、重慶市教育委科學技術研究項目(No.KJZDK201900603,KJQN201900629)、重慶市研究生教育教學改革項目(No.yjg183081)、重慶市高等教育教學改革項目(No.203398)、重慶郵電大學出版基金資助。
作者
2021年12月
李茜,博士,重慶郵電大學助理研究員,畢業于北京郵電大學。主要研究方向:大數據、社交網絡、信息傳播、機器學習。近年來,以作者在IEEE TCSS、Computational Intelligence、IEICE Transactions on Information and Systems、Physica A、網絡與信息安全學報等國內外高水平期刊發表論文十余篇。
●第1章KNN
1.1KNN算法原理
1.1.1算法引入
1.1.2科學問題
1.1.3算法流程
1.1.4算法描述
1.1.5補充說明
1.2KNN算法實現
1.2.1簡介
1.2.2核心代碼
1.3實驗數據
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樸素貝葉斯算法實現
2.2.1簡介
2.2.2核心代碼
2.3實驗數據
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算法實現
3.2.1簡介
3.2.2核心代碼
3.3實驗數據
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算法實現
4.2.1簡介
4.2.2核心代碼
4.3實驗數據
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算法實現
5.2.1簡介
5.2.2核心代碼
5.3實驗數據
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算法實現
6.2.1簡介
6.2.2核心代碼
6.3實驗數據
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算法實現
7.2.1簡介
7.2.2核心代碼
7.3實驗數據
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算法實現
8.2.1簡介
8.2.2核心代碼
8.3實驗數據
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算法實現
9.2.1簡介
9.2.2核心代碼
9.3實驗數據
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實現
10.2.1簡介
10.2.2核心代碼
10.3實驗數據
10.4實驗結果
10.4.1結果展示
10.4.2結果分析