編輯推薦
Apache Spark是一個分布式計算框架,專為滿足低延遲任務和內存數據存儲的需求而優化。現有並行計算框架中,鮮有能兼顧速度、可擴展性、內存處理以及容錯性,同時還能簡化編程,提供靈活、錶達力豐富的強大API的,Apache Spark就是這樣一個難得的框架。
本書介紹瞭Spark的基礎知識,從利用Spark API來載入和處理數據,到將數據作為多種機器學習模型的輸入。此外還通過詳細的例子和現實應用講解瞭常見的機器學習模型,包括推薦係統、分類、迴歸、聚類和降維。另外還介紹瞭一些高階內容,如大規模文本數據的處理,以及Spark Streaming下的在綫機器學習和模型評估方法。
如果你是一名Scala、Java或Python開發者,對機器學習和數據分析感興趣,並想藉助Spark框架來實現常見機器學習技術的大規模應用,那麼本書便是為你而寫。有Spark的基礎知識,但並不要求你有實踐經驗。
通過學習本書,你將能夠:
用Scala、Java或Python語言編寫你的一個Spark程序;
獲取公開的機器學習數據集,以及使用Spark對數據進行載入、處理、清理和轉換;
藉助Spark機器學習庫,利用協同過濾、分類、迴歸、聚類和降維等常見的機器學習模型來編寫程序;
編寫Spark函數來評估你的機器學習模型的性能;
瞭解大規模文本數據的處理方法,包括特徵提取和將文本數據作為機器學習模型的輸入;
探索在綫學習方法,利用Spark Streaming來進行在綫學習和模型評估。
內容簡介
《Spark機器學習》每章都設計瞭案例研究,以機器學習算法為主綫,結閤實例探討瞭Spark 的實際應用。書中沒有讓人抓狂的數據公式,而是從準備和正確認識數據開始講起,全麵涵蓋瞭推薦係統、迴歸、聚類、降維等經典的機器學習算法及其實際應用。
作者簡介
Nick Pentreath是Graphflow公司聯閤創始人。Graphflow是一傢大數據和機器學習公司,專注於以用戶為中心的推薦係統和客戶服務智能化技術。Nick擁有金融市場、機器學習和軟件開發背景,曾任職於高盛集團,之後去在綫廣告營銷創業公司Cognitive Match Limited(倫敦)擔任研究科學傢,後又去非洲更大的社交網絡Mxit領導數據科學與分析團隊。Nick是Apache Spark項目管理委員會成員之一。
內頁插圖
目錄
第1 章 Spark 的環境搭建與運行 1
1.1 Spark 的本地安裝與配置 2
1.2 Spark 集群 3
1.3 Spark 編程模型 4
1.3.1 SparkContext類與SparkConf類 4
1.3.2 Spark shell 5
1.3.3 彈性分布式數據集 6
1.3.4 廣播變量和纍加器 10
1.4 Spark Scala 編程入門 11
1.5 Spark Java 編程入門 14
1.6 Spark Python 編程入門 17
1.7 在Amazon EC2 上運行Spark 18
1.8 小結 23
第2 章 設計機器學習係統 24
2.1 MovieStream 介紹 24
2.2 機器學習係統商業用例 25
2.2.1 個性化 26
2.2.2 目標營銷和客戶細分 26
2.2.3 預測建模與分析 26
2.3 機器學習模型的種類 27
2.4 數據驅動的機器學習係統的組成 27
2.4.1 數據獲取與存儲 28
2.4.2 數據清理與轉換 28
2.4.3 模型訓練與測試迴路 29
2.4.4 模型部署與整閤 30
2.4.5 模型監控與反饋 30
2.4.6 批處理或實時方案的選擇 31
2.5 機器學習係統架構 31
2.6 小結 33
第3 章 Spark 上數據的獲取、處理與準備 34
3.1 獲取公開數據集 35
3.2 探索與可視化數據 37
3.2.1 探索用戶數據 38
3.2.2 探索電影數據 41
3.2.3 探索評級數據 43
3.3 處理與轉換數據 46
3.4 從數據中提取有用特徵 48
3.4.1 數值特徵 48
3.4.2 類彆特徵 49
3.4.3 派生特徵 50
3.4.4 文本特徵 51
3.4.5 正則化特徵 55
3.4.6 用軟件包提取特徵 56
3.5 小結 57
第4 章 構建基於Spark 的推薦引擎 58
4.1 推薦模型的分類 59
4.1.1 基於內容的過濾 59
4.1.2 協同過濾 59
4.1.3 矩陣分解 60
4.2 提取有效特徵 64
4.3 訓練推薦模型67
4.3.1 使用MovieLens 100k 數據集訓練模型 67
4.3.2 使用隱式反饋數據訓練模型 68
4.4 使用推薦模型 69
4.4.1 用戶推薦 69
4.4.2 物品推薦 72
4.5 推薦模型效果的評估 75
4.5.1 均方差 75
4.5.2 K 值平均準確率 77
4.5.3 使用MLlib 內置的評估函數 81
4.6 小結 82
第5 章 Spark 構建分類模型 83
5.1 分類模型的種類 85
5.1.1 綫性模型 85
5.1.2 樸素貝葉斯模型 89
5.1.3 決策樹 90
5.2 從數據中抽取閤適的特徵 91
5.3 訓練分類模型 93
5.4 使用分類模型 95
5.5 評估分類模型的性能 96
5.5.1 預測的正確率和錯誤率 96
5.5.2 準確率和召迴率 97
5.5.3 ROC 麯綫和AUC 99
5.6 改進模型性能以及參數調優 101
5.6.1 特徵標準化 101
5.6.2 其他特徵 104
5.6.3 使用正確的數據格式 106
5.6.4 模型參數調優 107
5.7 小結 115
第6 章 Spark 構建迴歸模型 116
6.1 迴歸模型的種類 116
6.1.1 最小二乘迴歸 117
6.1.2 決策樹迴歸 117
6.2 從數據中抽取閤適的特徵 118
6.3 迴歸模型的訓練和應用 123
6.4 評估迴歸模型的性能 125
6.4.1 均方誤差和均方根誤差 125
6.4.2 平均絕對誤差 126
6.4.3 均方根對數誤差 126
6.4.4 R-平方係數 126
6.4.5 計算不同度量下的性能 126
6.5 改進模型性能和參數調優 127
6.5.1 變換目標變量 128
6.5.2 模型參數調優 132
6.6 小結 140
第7 章 Spark 構建聚類模型 141
7.1 聚類模型的類型 142
7.1.1 K-均值聚類 142
7.1.2 混閤模型 146
7.1.3 層次聚類 146
7.2 從數據中提取正確的特徵 146
7.3 訓練聚類模型 150
7.4 使用聚類模型進行預測 151
7.5 評估聚類模型的性能 155
7.5.1 內部評價指標 155
7.5.2 外部評價指標 156
7.5.3 在MovieLens 數據集計算性能 156
7.6 聚類模型參數調優 156
7.7 小結 158
第8 章 Spark 應用於數據降維 159
8.1 降維方法的種類 160
8.1.1 主成分分析 160
8.1.2 奇異值分解 160
8.1.3 和矩陣分解的關係 161
8.1.4 聚類作為降維的方法 161
8.2 從數據中抽取閤適的特徵 162
8.3 訓練降維模型 169
8.4 使用降維模型 172
8.4.1 在LFW數據集上使用PCA投影數據 172
8.4.2 PCA 和SVD 模型的關係 173
8.5 評價降維模型 174
8.6 小結 176
第9 章 Spark 高級文本處理技術 177
9.1 處理文本數據有什麼特彆之處 177
9.2 從數據中抽取閤適的特徵 177
9.2.1 短語加權錶示 178
9.2.2 特徵哈希 179
9.2.3 從20 新聞組數據集中提取TF-IDF 特徵 180
9.3 使用TF-IDF 模型 192
9.3.1 20 Newsgroups 數據集的文本相似度和TF-IDF 特徵 192
9.3.2 基於20 Newsgroups 數據集使用TF-IDF 訓練文本分類器 194
9.4 評估文本處理技術的作用 196
9.5 Word2Vec 模型 197
9.6 小結 200
第10 章 Spark Streaming 在實時機器學習上的應用 201
10.1 在綫學習 201
10.2 流處理 202
10.2.1 Spark Streaming 介紹 202
10.2.2 使用Spark Streaming 緩存和容錯 205
10.3 創建Spark Streaming 應用 206
10.3.1 消息生成端 207
10.3.2 創建簡單的流處理程序 209
10.3.3 流式分析 211
10.3.4 有狀態的流計算213
10.4 使用Spark Streaming 進行在綫學習 215
10.4.1 流迴歸 215
10.4.2 一個簡單的流迴歸程序 216
10.4.3 流K-均值 220
10.5 在綫模型評估 221
10.6 小結 224
前言/序言
《數據科學傢的煉金術:從海量數據中提取智能》 在這信息爆炸的時代,數據已成為驅動創新的核心燃料。然而,海量原始數據本身並無價值,唯有經過提煉、分析,從中挖掘齣有價值的洞見,纔能轉化為驅動決策、優化流程、甚至創造全新商業模式的智能。本書並非一本晦澀的技術手冊,而是一本關於“數據科學煉金術”的探索指南,旨在為那些渴望駕馭數據力量,將其轉化為寶貴財富的讀者提供一套係統而實用的方法論。 我們生活在一個被數據包圍的時代。每一次在綫瀏覽、每一次移動支付、每一次傳感器記錄,都在源源不斷地産生著巨量的數據。這些數據如同未經雕琢的礦石,蘊藏著金礦般的潛力,但如何將這些“礦石”轉化為閃耀的“黃金”,則是數據科學傢的核心任務。本書將帶領您穿越數據分析的各個環節,從數據的采集、清洗、探索性分析,到建模、評估、部署,為您揭示數據科學的完整流程,如同煉金術士般,一步步將粗糙的數據轉化為精煉的智能。 第一部分:數據之源與初煉——理解數據的本質與準備 在煉金術中,原材料的純度和質量至關重要。數據亦然。本書的開篇,將深入探討數據的來源與多樣性。我們將解析結構化數據(如數據庫錶格)與非結構化數據(如文本、圖像、音頻)的差異,理解它們各自的特點和挑戰。您將學會如何從各種數據源(APIs、數據庫、文件係統、網絡爬蟲)高效地獲取數據,並掌握常用的數據采集工具和技術。 數據的“不完美”是普遍現象,正如礦石中夾雜著雜質。數據清洗是數據科學流程中至關重要且耗時的一步。本書將詳細講解如何識彆和處理缺失值、異常值、重復數據和不一緻的數據格式。我們將介紹多種數據填充、平滑、去噪和轉換的技術,並演示如何利用Python等語言的強大庫(如Pandas)來自動化這一過程。您將學會構建健壯的數據清洗管道,確保後續分析的準確性。 探索性數據分析(EDA)是理解數據、發現模式和形成假設的關鍵。如同煉金術士在實驗前仔細觀察礦石的紋理與光澤,EDA幫助我們“看透”數據。本書將重點介紹各種可視化技術(散點圖、直方圖、箱綫圖、熱力圖等)的應用,通過直觀的圖形揭示數據之間的關係、分布和趨勢。您將學習如何運用統計摘要、相關性分析和維度降低技術(如主成分分析)來提煉數據的關鍵特徵,從而為建模提供堅實的基礎。 第二部分:模型的鍛造與提純——從數據到洞察的轉化 當數據準備就緒,我們便進入瞭“鍛造”模型的階段。本書將深入淺齣地介紹各類機器學習算法的核心原理,並側重於它們在實際應用中的落地。我們不會迴避算法的數學基礎,但更強調其直觀理解和工程實現。 監督學習的藝術: 分類的智慧: 您將學習如何構建模型來區分事物,例如判斷一封郵件是否為垃圾郵件,識彆一張圖片中的物體,或者預測客戶是否會流失。我們將詳細講解邏輯迴歸、支持嚮量機(SVM)、決策樹、隨機森林以及梯度提升模型(如XGBoost、LightGBM)的工作原理、優缺點和適用場景。您將掌握如何處理類彆不平衡問題,以及如何進行特徵工程來提升分類模型的性能。 迴歸的預測: 學習如何預測連續的數值,例如預測房價、股票價格或商品銷量。本書將介紹綫性迴歸、多項式迴歸、嶺迴歸和Lasso迴歸等經典模型,並探討如何處理多重共綫性、非綫性關係以及構建時間序列預測模型。 無監督學習的探索: 聚類的奧秘: 探索隱藏在數據中的自然分組。您將學習K-Means、DBSCAN等聚類算法,瞭解如何發現客戶細分、用戶群體或者數據中的異常模式。 降維的提煉: 將高維數據“壓縮”成更易於理解和處理的低維錶示,如主成分分析(PCA)和t-SNE。這對於數據可視化、噪聲去除和特徵提取至關重要。 模型的評估與優化: 僅僅建立模型是不夠的,如何知道模型的“成色”如何?本書將詳細介紹模型評估的各項指標(準確率、精確率、召迴率、F1分數、ROC麯綫、AUC、均方誤差、R²等),並講解交叉驗證、網格搜索等超參數調優技術,確保模型具有良好的泛化能力,避免過擬閤和欠擬閤。 第三部分:智能的升華與應用——將洞察轉化為價值 煉金術的終極目標是將卑金屬轉化為貴金屬。數據科學的目標是將原始數據轉化為有實際應用價值的智能。 特徵工程的妙手: 特徵是模型的“骨架”。本書將強調特徵工程的重要性,教您如何從原始數據中提取、組閤、變換齣更有信息量的特徵,這是提升模型性能的關鍵。您將學習如何創建交互特徵、多項式特徵,以及如何利用領域知識來構建有針對性的特徵。 集成學習的閤力: “三個臭皮匠,賽過諸葛亮”。集成學習將多個模型的預測結果結閤起來,通常能獲得比單一模型更優越的性能。本書將介紹Bagging(如隨機森林)和Boosting(如AdaBoost、GBDT、XGBoost)等集成方法,以及Stacking等更復雜的集成策略。 模型部署與監控: 模型的價值體現在實際應用中。本書將簡要介紹如何將訓練好的模型部署到生産環境中,使其能夠對外提供預測服務。同時,我們將探討模型部署後的監控策略,以確保模型在不斷變化的數據環境中保持有效性。 本書的特色與價值: 實戰導嚮: 全書貫穿豐富的實際案例和代碼示例(主要使用Python生態,如Scikit-learn、Pandas、NumPy等),讓您邊學邊練,迅速掌握數據科學的實踐技能。 循序漸進: 內容組織邏輯清晰,從基礎概念到高級技術,層層遞進,適閤不同背景的讀者,無論是初學者還是有一定經驗的從業者,都能從中獲益。 理論與實踐的平衡: 在講解算法原理的同時,也充分強調其實際應用中的注意事項和技巧,幫助讀者理解“為什麼”以及“如何做”。 批判性思維的培養: 鼓勵讀者獨立思考,不盲目套用算法,而是根據具體問題選擇最閤適的方法,並能對模型結果進行審慎的解讀。 《數據科學傢的煉金術》將不僅僅是教您如何使用工具,更是培養您一種數據驅動的思維方式。它將為您揭示如何從紛繁復雜的數據中提煉齣智慧的火花,如何將這些火花點燃,照亮決策的道路,驅動業務的增長,最終在數據的海洋中,創造齣屬於您自己的“黃金”。準備好踏上這場激動人心的“煉金”之旅瞭嗎?