Python大規模機器學習( 簡體 字) | |
作者:[荷]巴斯蒂安·賈丁(Bastiaan Sjardin) [意]盧卡·馬薩羅(Luca Massaron) [意]阿爾貝托·博斯凱蒂(Alberto Boschetti)著 | 類別:1. -> 程式設計 -> Python 2. -> 程式設計 -> 機器學習 |
出版社:機械工業出版社 | 3dWoo書號: 51060 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:4/1/2019 | |
頁數:296 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111623144 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
譯者序
前言 作者簡介 審校者簡介 第1章邁向可擴展性的第一步1 11詳細解釋可擴展性1 111大規模實例3 112介紹Python4 113使用Python進行向上擴展4 114使用Python進行向外擴展5 12Python用于大規模機器學習6 121選擇Python 2還是Python 36 122安裝Python7 123逐步安裝7 124安裝軟件包8 125軟件包升級9 126科學計算發行版10 127Jupyter/IPython介紹11 13Python包13 131NumPy14 132SciPy14 133pandas14 134Scikitlearn15 135小結21 第2章Scikitlearn中的可擴展學習22 21非核心學習22 211選擇子采樣23 212一次優化一個實例24 213構建非核心學習系統25 22流化源數據25 221處理真實數據集26 222第一個示例——流化共享單車數據集28 223使用pandas I/O工具30 224使用數據庫31 225關注實例排序35 23隨機學習37 231批處理梯度下降37 232隨機梯度下降40 233Scikitlearn的SGD實現40 234定義SGD學習參數42 24數據流的特征管理43 241描述目標46 242哈希技巧49 243其他基本變換51 244流測試和驗證52 245使用SGD52 25小結56 第3章實現快速SVM57 31測試數據集58 311共享單車數據集58 312森林覆蓋類型數據集58 32支持向量機59 321hinge loss及其變形64 322Scikitlearn的SVM實現65 323探究通過子采樣改善非線性SVM68 324使用SGD實現大規模SVM70 33正則化特征選擇77 34SGD中的非線性78 35超參數調整82 36小結96 第4章神經網絡與深度學習97 41神經網絡架構98 411神經網絡如何學習106 412選擇正確的架構110 413使用神經網絡111 414sknn并行化111 42神經網絡和正則化113 43神經網絡和超參數優化115 44神經網絡和決策邊界117 45用H2O進行規模化深度學習120 451用H2O進行大規模深度學習121 452H2O上的網格搜索124 46深度學習和無監督預訓練126 47使用theanets進行深度學習126 48自動編碼器和無監督學習128 49小結131 第5章用TensorFlow進行深度學習132 51TensorFlow安裝134 52在TensorFlow上使用SkFlow進行機器學習140 53安裝Keras和TensorFlow148 54在TensorFlow中通過Keras實現卷積神經網絡152 541卷積層153 542池化層153 543全連接層154 55增量CNN方法156 56GPU計算156 57小結159 第6章大規模分類和回歸樹160 61bootstrap聚合162 62隨機森林和極端隨機森林163 63隨機搜索實現快速參數優化167 64CART和boosting172 65XGBoost179 651XGBoost回歸181 652XGBoost流化大型數據集184 653XGBoost模型存儲185 66用H2O實現非核心CART185 661H2O上的隨機森林和網格搜索186 662H2O上的隨機梯度增強和網格搜索188 67小結191 第7章大規模無監督學習192 71無監督方法192 72特征分解:PCA193 721隨機化PCA199 722增量PCA200 723稀疏PCA201 73使用H2O的PCA202 74K-均值聚類算法203 741初始化方法206 742K-均值假設206 743選擇最佳K209 744擴展K-均值算法:小批量212 75用H2O實現K-均值216 76LDA218 77小結226 第8章分布式環境——Hadoop和Spark227 81從單機到集群227 82設置VM230 821VirtualBox230 822Vagrant232 823使用VM232 83Hadoop生態系統234 831架構234 832HDFS235 833MapReduce242 834YARN250 84Spark250 85小結260 第9章Spark機器學習實踐261 91為本章設置虛擬機261 92跨集群節點共享變量262 921廣播只讀變量262 922累加器只寫變量264 923廣播和累加器的示例265 93Spark的數據預處理267 931JSON文件和Spark DataFrame268 932處理缺失數據270 933在內存中分組和創建表271 934將預處理的DataFrame或RDD寫入磁盤273 935使用Spark DataFrame274 94Spark機器學習276 941Spark處理KDD99數據集277 942讀取數據集277 943特征工程280 944訓練學習器284 945評估學習器的表現286 946機器學習管道的威力286 947手動優化288 948交叉驗證291 95小結293 附錄介紹GPU和Theano294 本書三位作者致力于人工智能和數據分析領域的工作,曾為世界各地的公司和政府機構構建數據科學和人工智能項目,本書是他們十余年實踐經驗的結晶。書中不僅介紹大規模機器學習的基本概念,還包含豐富的案例研究,全部內容均針對最實用的技術和工具,對理論細節不作深入討論。不管是初學者、普通用戶還是專家級用戶,通過閱讀本書都能了解和掌握如何利用Python進行大規模機器學習。
本書由淺入深講解大量實例,圖文并茂呈現每一步的操作結果,可幫助你更好地掌握大規模機器學習所需的Python技術,包括基于Scikit-learn可擴展學習、 Liblinear和Vowpal Wabbit快速支持向量機、基于Theano與H2O的大規模深度學習方法、TensorFlow深度學習技術與在線神經網絡方法、大規模分類和回歸樹的可擴展解決方案、大規模無監督學習(PCA、聚類分析和主題建模等)擴展方法、Hadoop和Spark分布式環境、Spark機器學習實踐以及Theano和GPU計算的基礎知識等。 隨著大數據的興起,對計算及算法效率的需求不斷增加。本書介紹一組新的機器學習算法,它們能夠滿足這類擴展需求,并提高預測準確性。本書首先介紹可擴展的機器學習算法,這些算法的可擴展性可分為三級:第一級是可用于臺式計算機的加速算法;第二級是較新算法,專門為可擴展性而設計,可以處理更大的文件;第三級涉及在大數據環境中進行機器學習。本書還將介紹基于Hadoop中的MapReduce框架和Python中的Spark進行高效機器學習的新技術。 通過閱讀本書,你將學習: 應用可擴展性較好的機器學習算法 使用較新的大規模機器學習技術 以深度學習和可擴展數據處理技術來提高預測準確性 在Spark中使用MapReduce框架 通過Spark和Hadoop應用有效的機器學習算法 構建強大的可擴展集成 通過單機處理極端大型數據集,使用數據流訓練線性和非線性預測模型 “擁有大腦的好處在于:一個人可以學習,無知可以變成有知,點滴知識可以逐漸匯聚成江海”
——Douglas Hofstadter 機器學習屬于人工智能范疇,其目的是基于現有數據集(訓練集)來尋找函數,以便以盡可能高的正確性預測先前未見過的數據集(測試集)的結果,這通常以標簽和類別的形式(分類問題)或以連續值的形式(回歸問題)出現。在實際應用中,機器學習的具體實例包括預測未來股票價格,或從一組文件中對作者性別進行分類,等等。本書介紹最重要的機器學習概念和適合更大數據集的方法,并通過Python的實際示例向讀者進行講解。主要討論監督學習(分類和回歸),以及適用于更大數據集的無監督學習,比如主成分分析(PCA)、聚類和主題建模。 谷歌、Facebook和優步等大型IT公司都聲稱它們成功地大規模應用了這樣的機器學習方法,從而引起世界轟動。隨著大數據的出現和適用性提高,對可擴展機器學習解決方案的需求呈指數增長,導致許多其他公司甚至個人也已經開始渴望在大數據集中挖掘隱藏的相關性成果。不幸的是,大多數學習算法都不能很好擴展,會在臺式計算機或較大的計算集群上導致CPU和內存過載。因此,即使大數據的炒作高峰已經過去,但可擴展機器學習解決方案并不充裕。 坦率地說,仍然需要解決許多瓶頸問題,即便是很難歸類為大數據的數據集也如此(有的數據集高達2GB甚至更大)。本書的任務是提供合適的方法(有時甚至是非常規方法),以便大規模應用最強大的開源機器學習方法,而無須昂貴的企業解決方案或大型計算集群。通過本書,讀者可以學習使用Python和其他一些可用的解決方案(這些方案與可擴展的機器學習流水線能很好地集成)。閱讀這本書是一次旅程,它將讓你對機器學習有一個全新的了解,從而為你開始真正的大數據分析奠定基礎。 本書涵蓋的內容 第1章以正確視角提出可擴展機器學習的問題,以便你熟悉本書中將要使用的工具。 第2章討論采用隨機梯度下降(SGD)策略減少內存消耗,它基于非核心學習的主題。另外演示各種數據的不同處理技術,例如散列技巧。 第3章介紹流算法,它能夠以支持向量機的形式發現非線性。我們將介紹目前Scikit-learn的替代方法,如LIBLINEAR和Vowpal Wabbit,雖然它們以外部shell命令運行,但很容易用Python腳本封裝和定向。 第4章為在Theano框架中應用深度神經網絡以及使用H2O進行大規模處理提供有用策略。盡管這是個熱門話題,但成功應用它會相當困難,更別說提供可擴展的解決方案。另外,還將學習使用theanets包中的自動編碼器實現無監督的預訓練。 第5章介紹有趣的深度學習技術與在線神經網絡方法。雖然TensorFlow還處于起步階段,但該框架提供了非常不錯的機器學習解決方案。此外,還將詳解如何在TensorFlow環境中使用Keras卷積神經網絡功能。 第6章詳解隨機森林、梯度增強和XGboost的可擴展解決方案。CART是分類和回歸樹的縮寫,它是一種通常應用于集成方法框架的機器學習方法。我們還將演示使用H2O的大規模應用實例。 第7章深入介紹無監督學習、PCA、聚類分析和主題建模方法,并使用正確方法對它們進行擴展。 第8章學習如何在虛擬機環境中設置Spark,以便從單臺機器轉移到網絡計算范例。Python很容易在機器集群上集成并能增強我們的工作效率,因此很容易利用Hadoop集群的能力。 第9章演示使用Spark處理數據和在大數據集上構建預測模型的所有重要環節。 附錄介紹GPU和Theano,包括Theano和GPU計算的基礎知識。如果你的系統允許,還將幫助讀者學習相關安裝和環境配置,以便在GPU上使用Theano。 本書要求 運行書中代碼示例需要在macOS、Linux或Microsoft Windows上安裝Python 27或更高版本。 書中示例經常使用Python的基本功能庫,例如SciPy、NumPy、Scikitlearn和StatsModels,并且在某種程度上使用matplotlib和pandas進行科學和統計計算。也會使用稱為H2O的非核心云計算應用程序。 本書需要Jupyter及其Python內核驅動的Notebooks,本書使用最新版本41。 第1章將為設置Python環境、核心庫以及全部必需工具提供所有分步說明和某些技巧。 本書讀者 本書適合數據科學從業者、開發人員以及計劃使用大型復雜數據集的讀者。 我們努力讓本書擁有盡可能好的可讀性,以便適合更多讀者。 考慮到本書主題非常先進,我們建議讀者先熟悉基本的機器學習概念,如分類和回歸、誤差最小化函數和交叉驗證等,但不嚴格要求讀者必須這樣做。本書假設讀者了解Python、Jupyter Notebooks和命令行運行,并有一定的數學基礎,能夠掌握書中的各種大型解決方案背后的概念。本書寫作風格也適合使用其他語言(R、Java和MATLAB)的程序員。 理想情況下,非常適合(但不限于)熟悉機器學習并有興趣使用Python的數據科學家,因為相比于R或MATLAB而言,Python在計算、內存和I/O方面有優勢。 排版約定 書中代碼塊設置如下: 大多數示例中使用Jupyter Notebooks,所以希望在包含代碼塊的單元中始終帶有輸入(標記為In:),并通常帶有輸出(標記為Out:)。在你的計算機上,只需輸入In:后面的代碼,并檢查結果是否與Out:后面的內容相對應: 在終端命令行中給出命令時,會帶有前綴$>,否則,如果是Python REPL,則以>>>開頭: 表示警告或重要說明。 表示提示和技巧。 下載示例代碼及彩色圖像 本書的示例代碼及所有截圖和樣圖。 |