- Python機器學(xué)習(xí)基礎(chǔ)教程
- (德)Andreas C.Müller (美)Sarah Guido
- 3006字
- 2020-06-23 13:51:09
前言
目前,從醫(yī)療診斷和治療到在社交網(wǎng)絡(luò)上尋找好友,許多商業(yè)應(yīng)用和研究項目都離不開機器學(xué)習(xí)。許多人以為,只有大公司的大型研究團隊才能用到機器學(xué)習(xí)。在本書中,我們要向你展示,自己動手構(gòu)建機器學(xué)習(xí)解決方案是多么容易的一件事,也將介紹如何將這件事做到最好。學(xué)完本書中的知識,你可以自己構(gòu)建系統(tǒng),研究Twitter用戶的情感,或者對全球變暖做出預(yù)測。機器學(xué)習(xí)的應(yīng)用十分廣泛,如今的海量數(shù)據(jù)使得其應(yīng)用范圍更是遠超人們的想象。
目標讀者
本書是為機器學(xué)習(xí)從業(yè)者或有志成為機器學(xué)習(xí)從業(yè)者的人準備的,他們在為現(xiàn)實生活中的機器學(xué)習(xí)問題尋找解決方案。這是一本入門書,不需要讀者具備機器學(xué)習(xí)或人工智能(artificial intelligence, AI)的相關(guān)知識。我們主要使用Python和scikit-learn庫,一步一步構(gòu)建一個有效的機器學(xué)習(xí)應(yīng)用。我們介紹的方法適用于科學(xué)家和研究人員,也會對開發(fā)商業(yè)應(yīng)用的數(shù)據(jù)科學(xué)家有所幫助。如果你對Python以及NumPy和matplotlib庫有所了解的話,將能夠更好地掌握本書的內(nèi)容。
我們刻意不將數(shù)學(xué)作為重點,而是將機器學(xué)習(xí)算法的實踐作為重點。數(shù)學(xué)(尤其是概率論)是機器學(xué)習(xí)算法的基石,所以我們不會詳細分析算法的細節(jié)。如果你對機器學(xué)習(xí)算法的數(shù)學(xué)部分感興趣,我們推薦閱讀Trevor Hastie、Robert Tibshirani和Jerome Friedman合著的《統(tǒng)計學(xué)習(xí)基礎(chǔ)》(Elements of Statistical Learning, Springer出版社)一書,可以在幾位作者的網(wǎng)站上免費閱讀這本書(http://statweb.stanford.edu/~tibs/ElemStatLearn/)。我們也不會從頭講解如何編寫機器學(xué)習(xí)算法,而是將重點放在如何應(yīng)用scikit-learn庫和其他庫中已經(jīng)實現(xiàn)的海量模型。
寫作本書的原因
市面上已經(jīng)有許多關(guān)于機器學(xué)習(xí)和AI的書了,但這些書都是為計算機科學(xué)專業(yè)的研究生或博士生準備的,里面全都是高等數(shù)學(xué)的內(nèi)容。與之形成鮮明對比的是,在研究領(lǐng)域和商業(yè)應(yīng)用中,機器學(xué)習(xí)是作為一般工具使用的。如今,使用機器學(xué)習(xí)并不需要擁有博士學(xué)位。然而,能夠完全涵蓋在實踐中實現(xiàn)機器學(xué)習(xí)算法的所有重要內(nèi)容,而又不需要先修高等數(shù)學(xué)課程,這樣的學(xué)習(xí)資源少之又少。對于那些想要使用機器學(xué)習(xí)算法而又不想花費大量時間研讀微積分、線性代數(shù)和概率論的人來說,我們希望本書能夠有所幫助。
本書概覽
本書的結(jié)構(gòu)大致如下。
· 第1章介紹機器學(xué)習(xí)的基本概念及其應(yīng)用,并給出本書會用到的基本設(shè)置。
· 第2章和第3章介紹實踐中最常用的機器學(xué)習(xí)算法,并討論這些算法的優(yōu)缺點。
· 第4章介紹在機器學(xué)習(xí)中待處理數(shù)據(jù)的呈現(xiàn)方式的重要性,以及應(yīng)重點關(guān)注數(shù)據(jù)的哪些方面。
· 第5章介紹模型評估和調(diào)參的高級方法,重點講解交叉驗證和網(wǎng)格搜索。
· 第6章解釋管道的概念。管道用于串聯(lián)多個模型并封裝工作流。
· 第7章介紹如何將前面各章講述的方法應(yīng)用到文本數(shù)據(jù)上,還介紹了一些文本特有的處理方法。
· 第8章對全書進行總結(jié),還介紹了有關(guān)更高級主題的參考資料。
雖然第2章和第3章給出了實際算法,但對于初學(xué)者來說,并不需要理解所有這些算法。如果你想要盡快構(gòu)建一個機器學(xué)習(xí)系統(tǒng),我們建議你首先閱讀第1章和第2章的開始部分,里面介紹了所有的核心概念。然后你可以翻到2.5節(jié),里面提到了我們介紹的所有監(jiān)督學(xué)習(xí)模型。從中選擇最適合你需求的模型,然后翻回到對應(yīng)小節(jié)閱讀其詳細內(nèi)容。之后你可以使用第5章中的方法對你的模型進行評估和調(diào)參。
在線資源
在學(xué)習(xí)本書時,一定要參考scikit-learn官方網(wǎng)站(http://scikit-learn.org),查閱關(guān)于類和函數(shù)的更詳細的文檔,以及很多示例。此外,Andreas Müller創(chuàng)建的視頻課程“scikit-learn高等機器學(xué)習(xí)”(Advanced Machine Learning with scikit-learn)可以作為本書的補充材料。你可以在http://shop.oreilly.com/product/0636920043836.do觀看該課程。
排版約定
本書使用了下列排版約定。
· 黑體
表示新術(shù)語或重點強調(diào)的內(nèi)容。
· 等寬字體(constant width)
表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字等。也用于表示命令、模塊和包的名稱。
· 加粗等寬字體(constant width bold)
表示需要用戶逐字輸入的命令或其他文本。
· 等寬斜體(constant width italic)
表示應(yīng)替換成用戶輸入的值,或替換成根據(jù)上下文確定的值。
該圖標表示提示或建議。
該圖標表示一般性說明。
該圖標表示警告或警示。
使用代碼示例
補充材料(代碼示例、IPython notebook等)可以在https://github.com/amueller/introduction_to_ml_with_python下載。
本書是要幫你完成工作的。一般來說,如果本書提供了示例代碼,你可以把它用在你的程序和文檔中。除非你使用了很大一部分代碼,否則無需聯(lián)系我們獲得許可。比如,用本書的幾個代碼片段寫一個程序就無需獲得許可。銷售或分發(fā)O'Reilly圖書的示例光盤則需要獲得許可。引用本書中的示例代碼來回答問題無需獲得許可。將書中大量示例代碼放到你的產(chǎn)品文檔中則需要獲得許可。
如果你在引用本書內(nèi)容時注明出處,我們將不勝感激,但這并非強制要求。引用說明一般包括書名、作者、出版社和ISBN。比如:“An Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido (O'Reilly). Copyright 2017 Sarah Guido and Andreas Müller, 978-1-449-36941-5.”
如果你認為自己對代碼示例的用法超出了合理使用的范圍或上述許可的范圍,敬請通過permissions@oreilly.com與我們聯(lián)系。
Safari?Books Online

Safari Books Online是應(yīng)運而生的數(shù)字圖書館,它同時以圖書和視頻的形式出版世界頂級技術(shù)和商業(yè)作家的專業(yè)作品。
技術(shù)專家、軟件開發(fā)人員、Web設(shè)計師、商務(wù)人士和創(chuàng)意專家等,在開展調(diào)研、解決問題、學(xué)習(xí)和認證培訓(xùn)時,都將Safari Books Online視作獲取資料的首選渠道。
對于企業(yè)、政府、教育機構(gòu)和個人,Safari Books Online都提供各種產(chǎn)品組合和靈活的定價策略。
用戶可通過一個功能完備的數(shù)據(jù)庫檢索系統(tǒng)訪問O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology等數(shù)百家出版社的上千種圖書、培訓(xùn)視頻和正式出版之前的書稿。要了解Safari Books Online的更多信息,請訪問我們的網(wǎng)站。
聯(lián)系我們
請把對本書的評價和問題發(fā)給出版社。
美國:
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術(shù)咨詢(北京)有限公司
我們?yōu)楸緯鴦?chuàng)建了一個網(wǎng)頁,在上面列出了本書的勘誤表、示例以及其他信息。本書的網(wǎng)站地址是:http://shop.oreilly.com/product/0636920030515.do。
如果你想就本書發(fā)表評論或技術(shù)性問題,請發(fā)送電子郵件到bookquestions@oreilly.com。想了解更多O'Reilly圖書、培訓(xùn)課程、會議和新聞的信息,請訪問我們的網(wǎng)站:
我們在Facebook的地址如下:http://facebook.com/oreilly
請關(guān)注我們的Twitter動態(tài):http://twitter.com/oreillymedia
我們的YouTube視頻地址如下:http://www.youtube.com/oreillymedia
致謝
來自Andreas的致謝
如果沒有許多人的幫助和支持,本書永遠不會出版。
我要感謝本書編輯Meghan Blanchette和Brian MacDonald,特別是Dawn Schanafelt,感謝他們幫助我和Sarah共同完成這本書。
我要感謝我的審稿人Thomas Caswell、Olivier Grisel、Stefan van der Walt和John Myles White,感謝他們花費時間閱讀本書的早期版本,并提供寶貴的反饋意見。這些意見也成為了科學(xué)計算開源生態(tài)系統(tǒng)的基石。
我永遠感謝熱情的Python科學(xué)計算開源社區(qū),特別要感謝scikit-learn的貢獻者們。如果沒有這個社區(qū)的支持和幫助,特別是Gael Varoquaux、Alex Gramfort和Olivier Grisel的支持和幫助,我永遠無法成為scikit-learn的核心貢獻者,也無法像現(xiàn)在這樣對這個包有如此深刻的理解。我還要感謝scikit-learn的其他所有貢獻者,他們花費了大量時間改進并維護這個包。
我還要感謝與我討論的許多同事和同行。這些談話幫助我理解了機器學(xué)習(xí)的挑戰(zhàn),并讓我產(chǎn)生構(gòu)思一本教科書的想法。我與許多人討論過機器學(xué)習(xí),但我要特別感謝其中的Brian McFee、Daniela Huttenkoppen、Joel Nothman、Gilles Louppe、Hugo Bowne-Anderson、Sven Kreis、Alice Zheng、Kyunghyun Cho、Pablo Baberas和Dan Cervone。
我還要感謝Rachel Rakov,她對本書的早期版本做了許多熱心的測試和校對工作,在成書過程中給了我很多幫助。
就個人來說,我要感謝我的父母Harald和Margot,還有我的姐姐Miriam,感謝他們持續(xù)給予我的支持和鼓勵。我還要感謝生命中的許多人,他們的愛和友誼給我能量,支持我完成這項富有挑戰(zhàn)性的任務(wù)。
來自Sarah的致謝
我要感謝Meghan Blanchette,沒有她的幫助和指導(dǎo),甚至就不會有本項目的存在。感謝Celia La和Brian Carlson早期對本書的審閱。感謝O'Reilly工作人員無盡的耐心。最后,感謝DTS,感謝你永恒不變的支持。
電子書
掃描如下二維碼,即可購買本書電子版。

- 玩轉(zhuǎn)Scratch少兒趣味編程
- 從零開始:數(shù)字圖像處理的編程基礎(chǔ)與應(yīng)用
- Python機器學(xué)習(xí):數(shù)據(jù)分析與評分卡建模(微課版)
- Angular UI Development with PrimeNG
- Flink SQL與DataStream入門、進階與實戰(zhàn)
- Learning RabbitMQ
- Python神經(jīng)網(wǎng)絡(luò)項目實戰(zhàn)
- MATLAB實用教程
- MySQL數(shù)據(jù)庫基礎(chǔ)實例教程(微課版)
- Instant Lucene.NET
- 分布式架構(gòu)原理與實踐
- 超好玩的Scratch 3.5少兒編程
- Spring Boot學(xué)習(xí)指南:構(gòu)建云原生Java和Kotlin應(yīng)用程序
- Android從入門到精通
- Web前端開發(fā)全程實戰(zhàn):HTML5+CSS3+JavaScript+jQuery+Bootstrap