求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

機器學習實戰

事實揭露 揭密真相
前往: 導覽搜尋
機器學習實戰

《機器學習實戰》內容簡介:機器學習是人工智能研究領域中的一個極其重要的方向。在現今大數據時代的背景下,捕獲數據並從中萃取有價值的信息或模式,使得這一過去為分析師與數學家所專屬的研究領域越來越為人們矚目。《機器學習實戰》通過精心編排的實例,切入日常工作任務,摒棄學術化語言,利用高效可復用的Python代碼闡釋如何處理統計數據,進行數據分析及可視化。讀者可從中學到一些核心的機器學習算法,並將其運用於某些策略性任務中,如分類、預測及推薦等。 《機器學習實戰》適合機器學習相關研究人員及互聯網從業人員學習參考。

基本介紹

作  者:[美] Peter Harrington 著 李銳,李鵬,曲亞東,王斌 譯

出 版 社:人民郵電出版社

出版時間:2013-06-01

所屬分類:圖書 > 計算機與互聯網 > 人工智能

推薦

介紹並實現機器學習的主流算法

面向日常任務的高效實戰內容

《機器學習實戰》沒有從理論角度來揭示機器學習算法背後的數學原理,而是通過「原理簡述+問題實例+實際代碼+運行效果」來介紹每一個算法。學習計算機的人都知道,計算機是一門實踐學科,沒有真正實現運行,很難真正理解算法的精髓。這本書的最大好處就是邊學邊用,非常適合於急需邁進機器學習領域的人員學習。實際上,即使對於那些對機器學習有所了解的人來說,通過代碼實現也能進一步加深對機器學習算法的理解。

《機器學習實戰》的代碼採用Python語言編寫。Python代碼簡單優雅、易於上手,科學計算軟件包眾多,已經成為不少大學和研究機構進行計算機教學和科學計算的語言。相信Python編寫的機器學習代碼也能讓讀者儘快領略到這門學科的精妙之處。

內容簡介

機器學習是人工智能研究領域中一個極其重要的研究方向,在現今的大數據時代背景下,捕獲數據並從中萃取有價值的信息或模式,成為各行業求生存、謀發展的決定性手段,這使得這一過去為分析師和數學家所專屬的研究領域越來越為人們所矚目。

《機器學習實戰》第一部分主要介紹機器學習基礎,以及如何利用算法進行分類,並逐步介紹了多種經典的監督學習算法,如k近鄰算法、樸素貝葉斯算法、Logistic回歸算法、支持向量機、AdaBoost集成方法、基於樹的回歸算法和分類回歸樹(CART)算法等。第三部分則重點介紹無監督學習及其一些主要算法:k均值聚類算法、Apriori算法、FP-Growth算法。第四部分介紹了機器學習算法的一些附屬工具。

《機器學習實戰》通過精心編排的實例,切入日常工作任務,摒棄學術化語言,利用高效的可復用Python代碼來闡釋如何處理統計數據,進行數據分析及可視化。通過各種實例,讀者可從中學會機器學習的核心算法,並能將其運用於一些策略性任務中,如分類、預測、推薦。另外,還可用它們來實現一些更高級的功能,如匯總和簡化等。

作者簡介

Peter Harrington,擁有電氣工程學士和碩士學位,他曾經在美國加州和中國的英特爾公司工作7年。Peter擁有5項美國專利,在三種學術期刊上發表過文章。他現在是Zillabyte公司的首席科學家,在加入該公司之前,他曾擔任2年的機器學習軟件顧問。Peter在業餘時間還參加編程競賽和建造3D打印機。

目錄

第一部分 分類

第1章 機器學習基礎  

1.1  何謂機器學習  

1.1.1  傳感器和海量數據  

1.1.2  機器學習非常重要  

1.2  關鍵術語  

1.3  機器學習的主要任務  

1.4  如何選擇合適的算法  

1.5  開發機器學習應用程序的步驟  

1.6  Python語言的優勢  

1.6.1  可執行偽代碼  

1.6.2  Python比較流行  

1.6.3  Python語言的特色  

1.6.4  Python語言的缺點  

1.7  NumPy函數庫基礎  

1.8  本章小結  

第2章 k-近鄰算法   

2.1  k-近鄰算法概述  

2.1.1  準備:使用Python導入數據  

2.1.2  從文本文件中解析數據  

2.1.3  如何測試分類器  

2.2  示例:使用k-近鄰算法改進約會網站的配對效果  

2.2.1  準備數據:從文本文件中解析數據  

2.2.2  分析數據:使用Matplotlib創建散點圖  

2.2.3  準備數據:歸一化數值  

2.2.4  測試算法:作為完整程序驗證分類器  

2.2.5  使用算法:構建完整可用系統  

2.3  示例:手寫識別系統  

2.3.1  準備數據:將圖像轉換為測試向量  

2.3.2  測試算法:使用k-近鄰算法識別手寫數字  

2.4  本章小結  

第3章 決策樹   

3.1  決策樹的構造  

3.1.1  信息增益  

3.1.2  劃分數據集  

3.1.3  遞歸構建決策樹  

3.2  在Python中使用Matplotlib註解繪製樹形圖  

3.2.1  Matplotlib註解  

3.2.2  構造註解樹  

3.3  測試和存儲分類器  

3.3.1  測試算法:使用決策樹執行分類  

3.3.2  使用算法:決策樹的存儲  

3.4  示例:使用決策樹預測隱形眼鏡類型  

3.5  本章小結  

第4章 基於概率論的分類方法:樸素貝葉斯   

4.1  基於貝葉斯決策理論的分類方法  

4.2  條件概率  

4.3  使用條件概率來分類  

4.4  使用樸素貝葉斯進行文檔分類  

4.5  使用Python進行文本分類  

4.5.1  準備數據:從文本中構建詞向量  

4.5.2  訓練算法:從詞向量計算概率  

4.5.3  測試算法:根據現實情況修改分類器  

4.5.4  準備數據:文檔詞袋模型  

4.6  示例:使用樸素貝葉斯過濾垃圾郵件  

4.6.1  準備數據:切分文本  

4.6.2  測試算法:使用樸素貝葉斯進行交叉驗證  

4.7  示例:使用樸素貝葉斯分類器從個人廣告中獲取區域傾向  

4.7.1  收集數據:導入RSS源  

4.7.2  分析數據:顯示地域相關的用詞  

4.8  本章小結  

第5章 Logistic回歸   

5.1  基於Logistic回歸和Sigmoid函數的分類  

5.2  基於最優化方法的最佳回歸係數確定  

5.2.1  梯度上升法  

5.2.2  訓練算法:使用梯度上升找到最佳參數  

5.2.3  分析數據:畫出決策邊界  

5.2.4  訓練算法:隨機梯度上升  

5.3  示例:從疝氣病症預測病馬的死亡率  

5.3.1  準備數據:處理數據中的缺失值  

5.3.2  測試算法:用Logistic回歸進行分類  

5.4  本章小結  

第6章 支持向量機  

6.1  基於最大間隔分隔數據  

6.2  尋找最大間隔  

6.2.1  分類器求解的優化問題  

6.2.2  SVM應用的一般框架  

6.3  SMO高效優化算法  

6.3.1  Platt的SMO算法  

6.3.2  應用簡化版SMO算法處理小規模數據集  

6.4  利用完整Platt SMO算法加速優化  

6.5  在複雜數據上應用核函數  

6.5.1  利用核函數將數據映射到高維空間  

6.5.2  徑向基核函數  

6.5.3  在測試中使用核函數  

6.6  示例:手寫識別問題回顧  

6.7  本章小結  

第7章 利用AdaBoost元算法提高分類

性能   

7.1  基於數據集多重抽樣的分類器  

7.1.1  bagging:基於數據隨機重抽樣的分類器構建方法  

7.1.2  boosting  

7.2  訓練算法:基於錯誤提升分類器的性能  

7.3  基於單層決策樹構建弱分類器  

7.4  完整AdaBoost算法的實現  

7.5  測試算法:基於AdaBoost的分類  

7.6  示例:在一個難數據集上應用AdaBoost  

7.7  非均衡分類問題  

7.7.1  其他分類性能度量指標:正確率、召回率及ROC曲線  

7.7.2  基於代價函數的分類器決策控制  

7.7.3  處理非均衡問題的數據抽樣方法  

7.8  本章小結  

第二部分 利用回歸預測數值型數據

第8章 預測數值型數據:回歸   

8.1  用線性回歸找到最佳擬合直線  

8.2  局部加權線性回歸  

8.3  示例:預測鮑魚的年齡  

8.4  縮減係數來「理解」數據  

8.4.1  嶺回歸  

8.4.2  lasso  

8.4.3  前向逐步回歸  

8.5  權衡偏差與方差  

8.6  示例:預測樂高玩具套裝的價格  

8.6.1  收集數據:使用Google購物的API  

8.6.2  訓練算法:建立模型  

8.7  本章小結  

第9章 樹回歸  

9.1  複雜數據的局部性建模  

9.2  連續和離散型特徵的樹的構建  

9.3  將CART算法用於回歸  

9.3.1  構建樹  

9.3.2  運行代碼  

9.4  樹剪枝  

9.4.1  預剪枝  

9.4.2  後剪枝  

9.5  模型樹  

9.6  示例:樹回歸與標準回歸的比較  

9.7  使用Python的Tkinter庫創建GUI  

9.7.1  用Tkinter創建GUI  

9.7.2  集成Matplotlib和Tkinter  

9.8  本章小結  

第三部分 無監督學習

第10章 利用K-均值聚類算法對未標註數據分組  

10.1  K-均值聚類算法  

10.2  使用後處理來提高聚類性能  

10.3  二分K-均值算法  

10.4  示例:對地圖上的點進行聚類  

10.4.1  Yahoo! PlaceFinder API  

10.4.2  對地理坐標進行聚類  

10.5  本章小結  

第11章 使用Apriori算法進行關聯分析  

11.1  關聯分析  

11.2  Apriori原理  

11.3  使用Apriori算法來發現頻繁集  

11.3.1  生成候選項集  

11.3.2  組織完整的Apriori算法  

11.4  從頻繁項集中挖掘關聯規則  

11.5  示例:發現國會投票中的模式  

11.5.1  收集數據:構建美國國會投票記錄的事務數據集  

11.5.2  測試算法:基於美國國會投票記錄挖掘關聯規則  

11.6  示例:發現毒蘑菇的相似特徵  

11.7  本章小結  

第12章 使用FP-growth算法來高效發現頻繁項集  

12.1  FP樹:用於編碼數據集的有效方式  

12.2  構建FP樹  

12.2.1  創建FP樹的數據結構  

12.2.2  構建FP樹  

12.3  從一棵FP樹中挖掘頻繁項集  

12.3.1  抽取條件模式基  

12.3.2  創建條件FP樹  

12.4  示例:在Twitter源中發現一些共現詞  

12.5  示例:從新聞網站點擊流中挖掘  

12.6  本章小結  

第四部分 其他工具

第13章 利用PCA來簡化數據  

13.1  降維技術  

13.2  PCA  

13.2.1  移動坐標軸  

13.2.2  在NumPy中實現PCA  

13.3  示例:利用PCA對半導體製造數據降維  

13.4  本章小結  

第14章 利用SVD簡化數據  

14.1  SVD的應用  

14.1.1  隱性語義索引  

14.1.2  推薦系統  

14.2  矩陣分解  

14.3  利用Python實現SVD  

14.4  基於協同過濾的推薦引擎  

14.4.1  相似度計算  

14.4.2  基於物品的相似度還是基於用戶的相似度?  

14.4.3  推薦引擎的評價  

14.5  示例:餐館菜餚推薦引擎  

14.5.1  推薦未嘗過的菜餚  

14.5.2  利用SVD提高推薦的效果  

14.5.3  構建推薦引擎面臨的挑戰  

14.6  基於SVD的圖像壓縮  

14.7  本章小結  

第15章 大數據與MapReduce  

15.1  MapReduce:分布式計算的框架  

15.2  Hadoop流  

15.2.1  分布式計算均值和方差的mapper  

15.2.2  分布式計算均值和方差的reducer  

15.3  在Amazon網絡服務上運行Hadoop程序  

15.3.1  AWS上的可用服務  

15.3.2  開啟Amazon網絡服務之旅  

15.3.3  在EMR上運行Hadoop作業  

15.4  MapReduce上的機器學習  

15.5  在Python中使用mrjob來自動化MapReduce  

15.5.1  mrjob與EMR的無縫集成  

15.5.2  mrjob的一個MapReduce腳本剖析  

15.6  示例:分布式SVM的Pegasos算法  

15.6.1  Pegasos算法  

15.6.2  訓練算法:用mrjob實現MapReduce版本的SVM  

15.7  你真的需要MapReduce嗎?  

15.8  本章小結  

附錄A  Python入門  

附錄B  線性代數  

附錄C  概率論複習  

附錄D  資源  

索引[1]

參考文獻