閱讀255 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《Scala機器學習》一一第1章 探索數據分析

第1章 探索數據分析

在本書深入研究複雜的數據分析方法之前,先來關注一些基本的數據探索任務,這些任務幾乎會占據數據科學家80%~90%的工作時間。據估計,每年僅僅是數據準備、清洗、轉換和數據聚合就有440億美元的產值(Data Preparation in the Big Data Era by Federico Castanedo; Best Practices for Data Integration, O?Reilly Media, 2015)。即便如此,人們最近才開始把更多的時間花費在如何科學地開發最佳實踐,以及為整個數據準備過程建立文檔、教學材料的良好習慣上,這是一件令人驚訝的事情(Beautiful Data: The Stories Behind Elegant Data Solutions, edited by Toby Segaran and Jeff Hammerbacher, O?Reilly Media, 2009;Advanced Analytics with Spark: Patterns for Learning from Data at Scale by Sandy Ryza et al., O?Reilly Media, 2015)。
很少有數據科學家會對數據分析的具體工具和技術看法一致,因為有多種方式可進行數據分析,從UNIX命令行到使用非常流行的開源包,或商業的ETL和可視化工具等。本章重點介紹在筆記本電腦上如何通過Scala進行函數式編程。後麵的章節會討論如何利用這些技術在分布式框架Hadoop/Spark下進行數據分析。
那函數式編程有什麼用呢?Spark用Scala開發是有原因的。函數式編程的很多基本原則(比如惰性求值、不變性、無副作用、列表推導式和單子(monad)),在分布式環境下做數據處理都表現得很好,特別是在大數據集上做數據準備和轉換等任務時更是如此。也可在PC或筆記本上使用這些技術。通過筆記本電腦連接到分布式存儲/處理集群就可處理多達數十TB的超級數據集。可以一次隻涉及一個主題或關注一個領域,但通常進行數據采樣或過濾時,不必考慮分區是否合適。本書使用Scala作為基本工具,必要時也會采用其他工具。
從某種意義上講,Scala能實現其他語言所能實現的一切功能。Scala從根本上講是一種高級語言,甚至可稱其為腳本語言。Scala有自己的容器,並且實現了一些基本的算法,這些功能已經通過大量的應用程序(比如Java或C++)和時間的測試,程序員不必關心數據結構和算法實現的底層細節。本章也隻會關注如何用Scala/Spark來實現高級任務。
本章會涉及如下主題:
安裝Scala
學習簡單的數據挖掘技術
學習如何下采樣(downsample)原始數據集來提高效率
探討在Scala上實現基本的數據轉換和聚合
熟悉大數據處理工具,比如Spark和Spark Notebook
通過編程實現對數據集的簡單可視化

最後更新:2017-07-06 16:32:21

  上一篇:go  ai域名火爆的原因分析
  下一篇:go  java中文亂碼解決之道(一)—–認識字符集