數(shù)據(jù)科學(xué)家和大數(shù)據(jù)技術(shù)人員工具包
本文簡介:數(shù)據(jù)科學(xué)家的常用工具與基本思路,數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家使用的工具綜合概述,包括開源的技術(shù)平臺(tái)相關(guān)工具、挖掘分析處理工具、其它常見工具等幾百種,幾十個(gè)大類,部分網(wǎng)址。為數(shù)據(jù)科學(xué)教育和知識(shí)分享,提高數(shù)據(jù)科學(xué)人員素質(zhì)。
數(shù)據(jù)科學(xué)融合了多門學(xué)科并且建立在這些學(xué)科的理論和技術(shù)之上,包括數(shù)學(xué)、概率模型、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)、數(shù)據(jù)倉庫、可視化等。在實(shí)際應(yīng)用中,數(shù)據(jù)科學(xué)包括數(shù)據(jù)的收集、清洗、分析、可視化以及數(shù)據(jù)應(yīng)用整個(gè)迭代過程,最終幫助組織制定正確的發(fā)展決策數(shù)據(jù)科學(xué)的從業(yè)者稱為數(shù)據(jù)科學(xué)家。數(shù)據(jù)科學(xué)家有其獨(dú)特的基本思路與常用工具,秦隴紀(jì)全面梳理數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家使用的工具包,包括開源的技術(shù)平臺(tái)相關(guān)工具、挖掘分析處理工具、其它常見工具等幾百種,幾十個(gè)大類,部分網(wǎng)址,歡迎大家積極傳播!
數(shù)據(jù)科學(xué)家是有著開闊視野的復(fù)合型人才,他們既有堅(jiān)實(shí)的數(shù)據(jù)科學(xué)基礎(chǔ),如數(shù)學(xué)、統(tǒng)計(jì)學(xué)、計(jì)算機(jī)學(xué)等,又具備廣泛的業(yè)務(wù)知識(shí)和經(jīng)驗(yàn)數(shù)據(jù)科學(xué)家通過精深的技術(shù)和專業(yè)知識(shí)在某些科學(xué)學(xué)科領(lǐng)域解決復(fù)雜的數(shù)據(jù)問題,從而制定出適合不同決策人員的大數(shù)據(jù)計(jì)劃和策略。數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家使用的工具在網(wǎng)上的MOOC有提供,比如2016年2月1日約翰-霍普金斯大學(xué)Coursera數(shù)據(jù)科學(xué)專業(yè)化課程等網(wǎng)絡(luò)課程。數(shù)據(jù)科學(xué)家的常用工具與基本思路,并對數(shù)據(jù)、相關(guān)問題和數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家使用的工具做了綜合概述。
數(shù)據(jù)科學(xué)家和大數(shù)據(jù)技術(shù)人員的工具包:A.大數(shù)據(jù)技術(shù)平臺(tái)相關(guān)2015最佳工具,B.開源大數(shù)據(jù)處理工具匯總,C.常見的數(shù)據(jù)挖掘分析處理工具。
A.大數(shù)據(jù)技術(shù)平臺(tái)相關(guān)2015最佳工具
InfoWorld在分布式數(shù)據(jù)處理、流式數(shù)據(jù)分析、機(jī)器學(xué)習(xí)以及大規(guī)模數(shù)據(jù)分析領(lǐng)域精選出了2015年的開源工具獲獎(jiǎng)?wù)?,下面我們來簡單介紹下這些獲獎(jiǎng)的技術(shù)工具。
1. Spark
在Apache的大數(shù)據(jù)項(xiàng)目中,Spark是最火的一個(gè),特別是像IBM這樣的重量級(jí)貢獻(xiàn)者的深入?yún)⑴c,使得Spark的發(fā)展和進(jìn)步速度飛快。與 Spark產(chǎn)生最甜蜜的火花點(diǎn)仍然是在機(jī)器學(xué)習(xí)領(lǐng)域。去年以來DataFrames API取代SchemaRDD API,類似于R和Pandas的發(fā)現(xiàn),使數(shù)據(jù)訪問比原始RDD接口更簡單。Spark的新發(fā)展中也有新的為建立可重復(fù)的機(jī)器學(xué)習(xí)的工作流程,可擴(kuò)展和可優(yōu)化的支持各種存儲(chǔ)格式,更簡單的接口來訪問機(jī)器學(xué)習(xí)算法,改進(jìn)的集群資源的監(jiān)控和任務(wù)跟蹤。spark-packages.org網(wǎng)站上有超過100個(gè)第三方貢獻(xiàn)的鏈接庫擴(kuò)展,增加了許多有用的功能。
2. Storm
Storm是Apache項(xiàng)目中的一個(gè)分布式計(jì)算框架項(xiàng)目,主要應(yīng)用于流式數(shù)據(jù)實(shí)時(shí)處理領(lǐng)域。他基于低延時(shí)交互模式理念,以應(yīng)對復(fù)雜的事件處理需求。和Spark不同,Storm可以進(jìn)行單點(diǎn)隨機(jī)處理,而不僅僅是微批量任務(wù),并且對內(nèi)存的需求更低。在我的經(jīng)驗(yàn)中,他對于流式數(shù)據(jù)處理更有優(yōu)勢,特別是當(dāng)兩個(gè)數(shù)據(jù)源之間的數(shù)據(jù)快速傳輸過程中,需要對數(shù)據(jù)進(jìn)行快速處理的場景。Spark掩蓋了很多Storm的光芒,但其實(shí)Spark在很多流失數(shù)據(jù)處理的應(yīng)用場景中并不適合。Storm經(jīng)常和Apache Kafka一起配合使用。
3. H2O
H2O是一種分布式的內(nèi)存處理引擎用于機(jī)器學(xué)習(xí),它擁有一個(gè)令人印象深刻的數(shù)組的算法。早期版本僅僅支持R語言,3.0版本開始支持Python 和Java語言,同時(shí)它也可以作為Spark在后端的執(zhí)行引擎。使用H2O的最佳方式是把它作為R環(huán)境的一個(gè)大內(nèi)存擴(kuò)展,R環(huán)境并不直接作用于大的數(shù)據(jù)集,而是通過擴(kuò)展通訊協(xié)議例如REST API與H2O集群通訊,H2O來處理大量的數(shù)據(jù)工作。幾個(gè)有用的R擴(kuò)展包,如ddply已經(jīng)被打包,允許你在處理大規(guī)模數(shù)據(jù)集時(shí),打破本地機(jī)器上內(nèi)存容量的限制。你可以在EC2上運(yùn)行H2O,或者Hadoop集群/YARN集群,或者Docker容器。用蘇打水(Spark+ H2O)你可以訪問在集群上并行的訪問Spark RDDS,在數(shù)據(jù)幀被Spark處理后。再傳遞給一個(gè)H2O的機(jī)器學(xué)習(xí)算法。
4. Apex
Apex是一個(gè)企業(yè)級(jí)的大數(shù)據(jù)動(dòng)態(tài)處理平臺(tái),即能夠支持即時(shí)的流式數(shù)據(jù)處理,也可以支持批量數(shù)據(jù)處理。它可以是一個(gè)YARN的原生程序,能夠支持大規(guī)模、可擴(kuò)展、支持容錯(cuò)方法的流式數(shù)據(jù)處理引擎。它原生的支持一般事件處理并保證數(shù)據(jù)一致性(精確一次處理、最少一次、最多一次)。以前 DataTorrent公司開發(fā)的基于Apex的商業(yè)處理軟件,其代碼、文檔及架構(gòu)設(shè)計(jì)顯示,Apex在支持DevOps方面能夠把應(yīng)用開發(fā)清楚的分離,用戶代碼通常不需要知道他在一個(gè)流媒體處理集群中運(yùn)行。Malhar是一個(gè)相關(guān)項(xiàng)目,提供超過300種常用的實(shí)現(xiàn)共同的業(yè)務(wù)邏輯的應(yīng)用程序模板。 Malhar的鏈接庫可以顯著的減少開發(fā)Apex應(yīng)用程序的時(shí)間,并且提供了連接各種存儲(chǔ)、文件系統(tǒng)、消息系統(tǒng)、數(shù)據(jù)庫的連接器和驅(qū)動(dòng)程序。并且可以進(jìn)行擴(kuò)展或定制,以滿足個(gè)人業(yè)務(wù)的要求。所有的malhar組件都是Apache許可下使用。
5. Druid
Druid在今年二月轉(zhuǎn)為了商業(yè)友好的Apache許可證,是一個(gè)基于“事件流的混合引擎,能夠滿足OLAP解決方案。最初他主要應(yīng)用于廣告市場的在線數(shù)據(jù)處理領(lǐng)域,德魯伊可以讓用戶基于時(shí)間序列數(shù)據(jù)做任意和互動(dòng)的分析。一些關(guān)鍵的功能包括低延遲事件處理,快速聚合,近似和精確的計(jì)算。Druid 的核心是一個(gè)使用專門的節(jié)點(diǎn)來處理每個(gè)部分的問題自定義的數(shù)據(jù)存儲(chǔ)。實(shí)時(shí)分析基于實(shí)時(shí)管理(JVM)節(jié)點(diǎn)來處理,最終數(shù)據(jù)會(huì)存儲(chǔ)在歷史節(jié)點(diǎn)中負(fù)責(zé)老的數(shù)據(jù)。代理節(jié)點(diǎn)直接查詢實(shí)時(shí)和歷史節(jié)點(diǎn),給用戶一個(gè)完整的事件信息。測試表明50萬事件數(shù)據(jù)能夠在一秒內(nèi)處理完成,并且每秒處理能力可以達(dá)到100萬的峰值,Druid作為在線廣告處理、網(wǎng)絡(luò)流量和其他的活動(dòng)流的理想實(shí)時(shí)處理平臺(tái)。
6. Flink
Flink的核心是一個(gè)事件流數(shù)據(jù)流引擎。雖然表面上類似Spark,實(shí)際上Flink是采用不同的內(nèi)存中處理方法的。首先,F(xiàn)link從設(shè)計(jì)開始就作為一個(gè)流處理器。批處理只是一個(gè)具有開始和結(jié)束狀態(tài)的流式處理的特殊情況,F(xiàn)link提供了API來應(yīng)對不同的應(yīng)用場景,無論是API(批處理)和數(shù)據(jù)流API。MapReduce的世界的開發(fā)者們在面對DataSet處理API時(shí)應(yīng)該有賓至如歸的感覺,并且將應(yīng)用程序移植到Flink非常容易。在許多方面,F(xiàn)link和Spark一樣,其的簡潔性和一致性使他廣受歡迎。像Spark一樣,F(xiàn)link是用Scala寫的。
7. Elasticsearch
Elasticsearch是基于Apache Lucene搜索分布式文件服務(wù)器。它的核心,Elasticsearch基于JSON格式的近乎實(shí)時(shí)的構(gòu)建了數(shù)據(jù)索引,能夠?qū)崿F(xiàn)快速全文檢索功能。結(jié)合開源Kibana BI顯示工具,您可以創(chuàng)建令人印象深刻的數(shù)據(jù)可視化界面。Elasticsearch易于設(shè)置和擴(kuò)展,他能夠自動(dòng)根據(jù)需要使用新的硬件來進(jìn)行分片。他的查詢語法和SQL不太一樣,但它也是大家很熟悉的JSON。大多數(shù)用戶不會(huì)在那個(gè)級(jí)別進(jìn)行數(shù)據(jù)交互。開發(fā)人員可以使用原生JSON-over-HTTP接口或常用的幾個(gè)開發(fā)語言進(jìn)行交互,包括Ruby,Python,PHP,Perl,Java,JavaScript等。
8. SlamData
如果你正在尋找一個(gè)用戶友好的工具,能理解最新流行的NoSQL數(shù)據(jù)的可視化工具,那么你應(yīng)該看一看SlamData。SlamData允許您用熟悉的SQL語法來進(jìn)行JSON數(shù)據(jù)的嵌套查詢,不需要轉(zhuǎn)換或語法改造。該技術(shù)的主要特點(diǎn)之一是它的連接器。從 MongoDB,HBase,Cassandra和Apache的Spark,SlamData同大多數(shù)業(yè)界標(biāo)準(zhǔn)的外部數(shù)據(jù)源可以方便的進(jìn)行整合,并進(jìn)行數(shù)據(jù)轉(zhuǎn)換和分析數(shù)據(jù)。你可能會(huì)問:“我不會(huì)有更好的數(shù)據(jù)池或數(shù)據(jù)倉庫工具嗎?請認(rèn)清這是在NoSQL領(lǐng)域。
9. Drill
Drill是一種用于大型數(shù)據(jù)集的交互分析的分布式系統(tǒng),由谷歌的Dremel催生。Drill專為嵌套數(shù)據(jù)的低延遲分析設(shè)計(jì),它有一個(gè)明確的設(shè)計(jì)目標(biāo),靈活的擴(kuò)展到10000臺(tái)服務(wù)器來處理查詢記錄數(shù)據(jù),并支持兆級(jí)別的數(shù)據(jù)記錄。嵌套的數(shù)據(jù)可以從各種數(shù)據(jù)源獲得的(如 HDFS,HBase,Amazon S3,和Blobs)和多種格式(包括JSON,Avro,和buffers),你不需要在讀取時(shí)指定一個(gè)模式(“讀時(shí)模式”)。Drill使用ANSI 2003 SQL的查詢語言為基礎(chǔ),所以數(shù)據(jù)工程師是沒有學(xué)習(xí)壓力的,它允許你連接查詢數(shù)據(jù)并跨多個(gè)數(shù)據(jù)源(例如,連接HBase表和在HDFS中的日志)。最后,Drill提供了基于ODBC和JDBC接口以和你所喜歡的BI工具對接。
10. HBase
HBase在今年的里程碑達(dá)到1.X版本并持續(xù)改善。像其他的非關(guān)系型的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase的查詢結(jié)果反饋非常迅速,因此擅長的是經(jīng)常用于后臺(tái)搜索引擎,如易趣網(wǎng),博科和雅虎等網(wǎng)站。作為一個(gè)穩(wěn)定的、成熟的軟件產(chǎn)品,HBase新鮮的功能并不是經(jīng)常出現(xiàn),但這種穩(wěn)定性往往是企業(yè)最關(guān)心的。最近的改進(jìn)包括增加區(qū)域服務(wù)器改進(jìn)高可用性,滾動(dòng)升級(jí)支持,和YARN的兼容性提升。在他的特性更新方面包括掃描器更新,保證提高性能,使用 HBase作為流媒體應(yīng)用像Storm和Spark持久存儲(chǔ)的能力。HBase也可以通過Phoenix項(xiàng)目來支持SQL查詢,其SQL兼容性在穩(wěn)步提高。Phoenix最近增加了一個(gè)Spark連接器,添加了自定義函數(shù)的功能。
11. Hive
隨著Hive過去多年的發(fā)展,逐步成熟,今年發(fā)布了1.0正式版本,它用于基于SQL的數(shù)據(jù)倉庫領(lǐng)域。目前基金會(huì)主要集中在提升性能、可擴(kuò)展性和 SQL兼容性。最新的1.2版本顯著的提升了ACID語意兼容性、跨數(shù)據(jù)中心復(fù)制,以及以成本為基礎(chǔ)的優(yōu)化器。Hive1.2也帶來了改進(jìn)的SQL的兼容性,使組織利用它更容易的把從現(xiàn)有的數(shù)據(jù)倉庫通過ETL工具進(jìn)行轉(zhuǎn)移。在規(guī)劃中講主要改進(jìn):以內(nèi)存緩存為核心的速度改進(jìn) LLAP,Spark的機(jī)器學(xué)習(xí)庫的集成,提高SQL的前嵌套子查詢、中間類型支持等。
12. Kylin
Kylin是eBay開發(fā)的用于處理非常大量數(shù)據(jù)的OLAP分析系統(tǒng),他使用標(biāo)準(zhǔn)的SQL語法,和很多數(shù)據(jù)分析產(chǎn)品很像。Kylin使用Hive 和MR來構(gòu)建立方體,Hive用作預(yù)鏈接,MR用作預(yù)聚合,HDFS用來儲(chǔ)存構(gòu)建立方體時(shí)的中間文件,HBase用來存儲(chǔ)立方體,HBase的 coprocessor(協(xié)處理器)用來響應(yīng)查詢。像大多數(shù)其他的分析應(yīng)用一樣,Kylin支持多種訪問方法,包括JDBC,ODBC API進(jìn)行編程訪問以及REST API接口。
13. CDAP
CDAP(Cask Data Access Platform)是一個(gè)在Hadoop之上運(yùn)行的框架,抽象了建造和運(yùn)行大數(shù)據(jù)應(yīng)用的復(fù)雜性。CDAP圍繞兩個(gè)核心概念:數(shù)據(jù)和應(yīng)用程序。CDAP數(shù)據(jù)集是數(shù)據(jù)的邏輯展現(xiàn),無論底層存儲(chǔ)層是什么樣的;CDAP提供實(shí)時(shí)數(shù)據(jù)流處理能力。應(yīng)用程序使用CDAP服務(wù)來處理諸如分布式事務(wù)和服務(wù)發(fā)現(xiàn)等應(yīng)用場景,避免程序開發(fā)者淹沒在Hadoop的底層細(xì)節(jié)中。CDAP自帶的數(shù)據(jù)攝取框架和一些預(yù)置的應(yīng)用和一些通用的“包”,例如ETL和網(wǎng)站分析,支持測試,調(diào)試和安全等。和大多數(shù)原商業(yè)(閉源)項(xiàng)目開源一樣,CDAP具有良好的文檔,教程,和例子。
14. Ranger
安全一直是Hadoop的一個(gè)痛處。它不是說(像是經(jīng)常報(bào)道)Hadoop是“不安全”或“不安全”。事實(shí)是, Hadoop 有很多的安全功能,雖然這些安全功能都不太強(qiáng)大。我的意思是,每一個(gè)組件都有它自己的身份驗(yàn)證和授權(quán)實(shí)施,這與其他的平臺(tái)沒有集成。2015年5 月,Hortonworks收購XA /安全,隨后經(jīng)過了改名后,我們有了Ranger。Ranger使得許多Hadoop的關(guān)鍵部件處在一個(gè)保護(hù)傘下,它允許你設(shè)置一個(gè)“策略”,把你的 Hadoop安全綁定到到您現(xiàn)有的ACL基于活動(dòng)目錄的身份驗(yàn)證和授權(quán)體系下。Ranger給你一個(gè)地方管理Hadoop的訪問控制,通過一個(gè)漂亮的頁面來做管理、審計(jì)、加密。
15. Mesos
Mesos提供了高效、跨分布式應(yīng)用程序和框架的資源隔離和共享,支持Hadoop、 MPI、Hypertable、Spark等。Mesos是Apache孵化器中的一個(gè)開源項(xiàng)目,使用ZooKeeper實(shí)現(xiàn)容錯(cuò)復(fù)制,使用Linux Containers來隔離任務(wù),支持多種資源計(jì)劃分配(內(nèi)存和CPU)。提供Java、Python和C++ APIs來開發(fā)新的并行應(yīng)用程序,提供基于Web的用戶界面來提查看集群狀態(tài)。Mesos應(yīng)用程序(框架)為群集資源協(xié)調(diào)兩級(jí)調(diào)度機(jī)制,所以寫一個(gè) Mesos應(yīng)用程序?qū)Τ绦騿T來說感覺不像是熟悉的體驗(yàn)。雖然Mesos是新的項(xiàng)目,成長卻很快。
16. NiFi
Apache NiFi 0.2.0 發(fā)布了,該項(xiàng)目目前還處于 Apache 基金會(huì)的孵化階段。Apache NiFi 是一個(gè)易于使用、功能強(qiáng)大而且可靠的數(shù)據(jù)處理和分發(fā)系統(tǒng)。Apache NiFi 是為數(shù)據(jù)流設(shè)計(jì)。它支持高度可配置的指示圖的數(shù)據(jù)路由、轉(zhuǎn)換和系統(tǒng)中介邏輯。Apache NiFi是由美國過國家安全局(NSA)貢獻(xiàn)給Apache基金會(huì)的開源項(xiàng)目,其設(shè)計(jì)目標(biāo)是自動(dòng)化系統(tǒng)間的數(shù)據(jù)流?;谄涔ぷ髁魇降木幊汤砟?,NiFi非常易于使用,強(qiáng)大,可靠及高可配置。兩個(gè)最重要的特性是其強(qiáng)大的用戶界面及良好的數(shù)據(jù)回溯工具。NiFi的用戶界面允許用戶在瀏覽器中直觀的理解并與數(shù)據(jù)流舉行交互,更快速和安全的進(jìn)行迭代。其數(shù)據(jù)回溯特性允許用戶查看一個(gè)對象如何在系統(tǒng)間流轉(zhuǎn),回放以及可視化關(guān)鍵步驟之前之后發(fā)生的情況,包括大量復(fù)雜的圖式轉(zhuǎn)換,fork,join及其他操作等。另外,NiFi使用基于組件的擴(kuò)展模型以為復(fù)雜的數(shù)據(jù)流快速增加功能,開箱即用的組件中處理文件系統(tǒng)的包括 FTP,SFTP及HTTP等,同樣也支持HDFS。NiFi獲得來來自業(yè)界的一致好評(píng),包括Hortonworks CEO,Leverage CTO及Prescient Edge首席系統(tǒng)架構(gòu)師等。
17. Kafka
在大數(shù)據(jù)領(lǐng)域,Kafka已經(jīng)成為分布式發(fā)布訂閱消息的事實(shí)標(biāo)準(zhǔn)。它的設(shè)計(jì)允許代理支持成千上萬的客戶在信息吞吐量告訴處理時(shí),同時(shí)通過分布式提交日志保持耐久性。Kafka是通過在HDFS系統(tǒng)上保存單個(gè)日志文件,由于HDFS是一個(gè)分布式的存儲(chǔ)系統(tǒng),使數(shù)據(jù)的冗余拷貝,因此Kafka自身也是受到良好保護(hù)的。當(dāng)消費(fèi)者想讀消息時(shí),Kafka在中央日志中查找其偏移量并發(fā)送它們。因?yàn)橄]有被立即刪除,增加消費(fèi)者或重發(fā)歷史信息不產(chǎn)生額外消耗。Kafka已經(jīng)為能夠每秒發(fā)送2百萬個(gè)消息。盡管Kafka的版本號(hào)是sub-1.0,但是其實(shí)Kafka是一個(gè)成熟、穩(wěn)定的產(chǎn)品,使用在一些世界上最大的集群中。
18.OpenTSDB
opentsdb是建立在時(shí)間序列基礎(chǔ)上的HBase數(shù)據(jù)庫。它是專為分析從應(yīng)用程序,移動(dòng)設(shè)備,網(wǎng)絡(luò)設(shè)備,和其他硬件設(shè)備收集的數(shù)據(jù)。它自定義 HBase架構(gòu)用于存儲(chǔ)時(shí)間序列數(shù)據(jù),被設(shè)計(jì)為支持快速聚合和最小的存儲(chǔ)空間需求。通過使用HBase作為底層存儲(chǔ)層,opentsdb很好的支持分布與系統(tǒng)可靠性的特點(diǎn)。用戶不與HBase的直接互動(dòng);而數(shù)據(jù)寫入系統(tǒng)是通過時(shí)間序列的守護(hù)進(jìn)程(TSD)來管理,它可以方便的擴(kuò)展用于需要高速處理數(shù)據(jù)量的應(yīng)用場景。有一些預(yù)制連接器將數(shù)據(jù)發(fā)布到opentsdb,并且支持從Ruby,Python以及其他語言的客戶端讀取數(shù)據(jù)。opentsdb并不擅長交互式圖形處理,但可以和第三方工具集成。如果你已經(jīng)在使用HBase和想要一個(gè)簡單的方法來存儲(chǔ)事件數(shù)據(jù),opentsdb也許正好適合你。
19. Jupyter
大家最喜歡的筆記應(yīng)用程序都走了。jupyter是“IPython”剝離出來成為一個(gè)獨(dú)立的軟件包的語言無關(guān)的部分。雖然jupyter本身是用Python寫的,該系統(tǒng)是模塊化的?,F(xiàn)在你可以有一個(gè)和iPython一樣的界面,在筆記本電腦中方便共享代碼,使得文檔和數(shù)據(jù)可視化。至少已經(jīng)支持 50個(gè)語言的內(nèi)核,包括Lisp,R,F(xiàn) #,Perl,Ruby,Scala等。事實(shí)上即使IPython本身也只是一個(gè)jupyter Python模塊。通過REPL(讀,評(píng)價(jià),打印循環(huán))語言內(nèi)核通信是通過協(xié)議,類似于nrepl或Slime。很高興看到這樣一個(gè)有用的軟件,得到了顯著的非營利組織資助,以進(jìn)一步發(fā)展,如并行執(zhí)行和多用戶筆記本應(yīng)用。
20. Zeppelin
Zeppelin是一個(gè)Apache的孵化項(xiàng)目. 一個(gè)基于web的筆記本,支持交互式數(shù)據(jù)分析。你可以用SQL、Scala等做出數(shù)據(jù)驅(qū)動(dòng)的、交互、協(xié)作的文檔。(類似于ipython notebook,可以直接在瀏覽器中寫代碼、筆記并共享)。一些基本的圖表已經(jīng)包含在Zeppelin中??梢暬⒉恢幌抻赟parkSQL查詢,后端的任何語言的輸出都可以被識(shí)別并可視化。 Zeppelin 提供了一個(gè) URL 用來僅僅展示結(jié)果,那個(gè)頁面不包括 Zeppelin 的菜單和按鈕。這樣,你可以輕易地將其作為一個(gè)iframe集成到你的網(wǎng)站。Zeppelin還不成熟。我想把一個(gè)演示,但找不到一個(gè)簡單的方法來禁用 “Shell”作為一個(gè)執(zhí)行選項(xiàng)(在其他事情)。然而,它已經(jīng)看起來的視覺效果比IPython筆記本應(yīng)用更好,Apache Zeppelin (孵化中) 是 Apache2 許可軟件。提供100%的開源。
B.開源大數(shù)據(jù)處理工具匯總
C.常見的數(shù)據(jù)挖掘分析處理工具
1、Dynelle Abeyta整理的數(shù)據(jù)科學(xué)家5種工具(2015-09-29):
dedup——dedup是一個(gè)Python庫,使用機(jī)器學(xué)習(xí)快速的對結(jié)構(gòu)化數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除和實(shí)體解析。數(shù)據(jù)科學(xué)家發(fā)現(xiàn)他們經(jīng)常需要使用 SELECT DISTINCT * FROM my_messy_dataset;不幸的是,現(xiàn)實(shí)世界中的數(shù)據(jù)集往往更加復(fù)雜。無論你是去對多個(gè)數(shù)據(jù)源進(jìn)行匯總,還是簡單的數(shù)據(jù)收集,開始你都需要對重復(fù)數(shù)據(jù)的刪除做一個(gè)有意義的分析。如你所想,有取之不盡的方法可以用來合并數(shù)據(jù)和用之不竭的規(guī)則來定義你數(shù)據(jù)的等價(jià)意義。有相同地址的兩家餐館是屬于一個(gè)公司么?名和姓都相同的兩條記錄就是同一個(gè)人么?你很幸運(yùn),dedup可以讓你轉(zhuǎn)危為安!基于創(chuàng)新的計(jì)算機(jī)科學(xué)研究,dedup使用機(jī)器學(xué)習(xí)(更確切地說,應(yīng)該是主動(dòng)學(xué)習(xí))去學(xué)習(xí),通過合并人類的反饋對兩個(gè)可能的模棱兩可的記錄進(jìn)行研究,并尋找究竟是什么構(gòu)成了兩者的“相似”。更方便的是,它有一個(gè)圖形用戶界面(GUI),任何人都可以使用它。
Theano——Theano是一個(gè)Python庫,你可以有效地定義、優(yōu)化以及評(píng)估包含多維數(shù)組的數(shù)學(xué)表達(dá)式。Theano的特點(diǎn):
- 和Numpy緊密結(jié)合——在Theano編譯的函數(shù)中使用numpy.ndaaray。
- GPU的透明使用——在執(zhí)行密集型數(shù)據(jù)計(jì)算時(shí),相比于CPU,速度提升了140倍。(使用float32進(jìn)行測試)
- 速度和穩(wěn)定性優(yōu)化——對log(1+x)得到正確的答案,即使x真的很小。
- C語言代碼動(dòng)態(tài)生成——加速評(píng)估表達(dá)式。
- 廣泛的單元測試和自我驗(yàn)證——發(fā)現(xiàn)和診斷不同種類的錯(cuò)誤。
StarCluster——StarCluster已經(jīng)開始在Amazon的EC2云服務(wù)器中設(shè)計(jì)虛擬機(jī)創(chuàng)建、配置和管理集群的自動(dòng)和簡化程序。 StarCluster允許所有人在面向分布式和并行計(jì)算的應(yīng)用和系統(tǒng)的云服務(wù)器中輕松的創(chuàng)建一個(gè)集群計(jì)算環(huán)境。這允許你在無限制的數(shù)據(jù)上做交互程序。(貢獻(xiàn)者Alessandro Gagliardi,Galvanize數(shù)據(jù)科學(xué)指導(dǎo)者。)
graph-tool——在python網(wǎng)絡(luò)和圖形分析庫與日俱增的情況下,圖形工具給了不少希望。盡管像NetworkX和Gephi這樣的工具在不斷成長的工具中仍然還有它們的一席之地,但是對于那些想要做大圖像高級(jí)分析的人來說——無論是社會(huì)網(wǎng)絡(luò)、道路網(wǎng)絡(luò)、還是生物網(wǎng)絡(luò)——這兩者往往會(huì)顯得力不從心。NetworkX一直是用于網(wǎng)絡(luò)分析的最流行的Python工具,因?yàn)樗兄S富的API并且使用的門檻很低,但是一旦你開始處理更大的圖形,純python實(shí)現(xiàn)的弊端才真正開始凸顯。而Gephi是一個(gè)極好的交互式可視化和開發(fā)新圖像的圖形化工具,但是有一個(gè)麻煩的腳本接口,使得它很難使用編程方式去控制。圖形工具嘗試從它前輩中吸取經(jīng)驗(yàn)教訓(xùn)并給數(shù)據(jù)科學(xué)家最好的結(jié)果。它使用C++實(shí)現(xiàn)(可并行執(zhí)行)并用Python來武裝,綁定了一個(gè)易于使用的API,同時(shí)獲得了超快的速度,而且不影響使用性。
Plotly——Plotly是一個(gè)面向R,Python,MATLAB,JavaScript和Excel的交互式圖形庫。Plotly也是一個(gè)用于分析和分享數(shù)據(jù)和圖像的平臺(tái)。Plotly是如何與眾不同的呢?與Google Docs和GitHub一樣,你可以協(xié)調(diào)和控制你的數(shù)據(jù);可以將文件設(shè)置成公有的、私有的、秘密文件或是分享的。如果你使用plotly的免費(fèi)公共云,脫機(jī)Plotly,或是現(xiàn)場部署,下面的選項(xiàng)很多都是可以獲得的。在你的工作流中可以使用Plotly,這里有三種可用方式:
為數(shù)據(jù)科學(xué)家整合其它工具。Plotly的R,Python和MATLAB的API可以讓你做交互、更新儀表面板和圖像。Plotly整合了 IPython Notebooks,NetworkX,Shiny,ggplot2,matplotlib,pandas,reporting tools和數(shù)據(jù)庫。例如,下面的圖是使用ggplot2制作的,然后嵌入到這個(gè)博客中。將鼠標(biāo)懸停后看看數(shù)據(jù)變化,然后單擊拖動(dòng)放大。
創(chuàng)建交互式地圖。Plotly的圖形庫建立在D3.js之上。對于地理數(shù)據(jù),Plotly支持分級(jí)統(tǒng)計(jì)圖、散點(diǎn)圖、氣泡圖、分塊圖和線圖。你可以制作類似下面這樣的地圖,像R和Python一樣把它們嵌入到博客,應(yīng)用程序和儀表板。
建立全方位的可視化。你可以為使用Plotly滿足任意的可視化需求:地圖、2D、3D以及流圖。點(diǎn)擊并移動(dòng)你的鼠標(biāo)來旋轉(zhuǎn)這個(gè)圖,懸停并觀察數(shù)據(jù)變化,或切換放大。
2、6種開源數(shù)據(jù)挖掘工具:百分之八十的數(shù)據(jù)是非結(jié)構(gòu)化的,需要一個(gè)程序和方法來從中提取有用信息,并且將其轉(zhuǎn)換為可理解、可用的結(jié)構(gòu)化形式。數(shù)據(jù)挖掘過程中有大量的工具可供使用,比如采用 人工智能 、機(jī)器學(xué)習(xí),以及其他技術(shù)等來提取數(shù)據(jù)。以下為您推薦六款開源大數(shù)據(jù)挖掘工具:
1)WEKA——WEKA原生的非Java版本主要是為了分析農(nóng)業(yè)領(lǐng)域數(shù)據(jù)而開發(fā)的。該工具基于Java版本,是非常復(fù)雜的,并且應(yīng)用在許多不同的應(yīng)用中,包括數(shù)據(jù)分析以及預(yù)測建模的可視化和算法。與 RapidMiner 相比優(yōu)勢在于,它在 GNU 通用公共許可證下是免費(fèi)的,因?yàn)橛脩艨梢园凑兆约旱南埠眠x擇自定義。WEKA 支持多種標(biāo)準(zhǔn)數(shù)據(jù)挖掘任務(wù),包括數(shù)據(jù)預(yù)處理、收集、分類、回歸分析、可視化和特征選取。添加序列建模后,WEKA 將會(huì)變得更強(qiáng)大,但目前不包括在內(nèi)。
2)RapidMiner——該工具是用Java語言編寫的,通過基于模板的框架提供先進(jìn)的分析技術(shù)。該款工具最大的好處就是,用戶無需寫任何代碼。它是作為一個(gè)服務(wù)提供,而不是一款本地軟件。值得一提的是,該工具在數(shù)據(jù)挖掘工具榜上位列榜首。另外,除了數(shù)據(jù)挖掘,RapidMiner 還提供如數(shù)據(jù)預(yù)處理和可視化、預(yù)測分析和統(tǒng)計(jì)建模、評(píng)估和部署等功能。更厲害的是它還提供來自WEKA(一種智能分析環(huán)境)和R腳本的學(xué)習(xí)方案、模型和算法。RapidMiner分布在AGPL開源許可下,可以從 SourceForge上下載。SourceForge是一個(gè)開發(fā)者進(jìn)行開發(fā)管理的集中式場所,大量開源項(xiàng)目在此落戶,其中就包括維基百科使用的 MediaWiki。
3)NLTK——當(dāng)涉及到語言處理任務(wù),沒有什么可以打敗NLTK。NLTK提供了一個(gè)語言處理工具,包括數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、數(shù)據(jù)抓取、情感分析等各種語言處理任務(wù)。而您需要做的只是安裝NLTK,然后將一個(gè)包拖拽到您最喜愛的任務(wù)中,您就可以去做其他事了。因?yàn)樗怯肞ython語言編寫的,你可以在上面建立應(yīng)用,還可以自定義它的小任務(wù)。
4)Orange——Python之所以受歡迎,是因?yàn)樗唵我讓W(xué)并且功能強(qiáng)大。如果你是一個(gè)Python開發(fā)者,當(dāng)涉及到需要找一個(gè)工作用的工具時(shí),那么沒有比Orange更合適的了。它是一個(gè)基于Python語言,功能強(qiáng)大的開源工具,并且對初學(xué)者和專家級(jí)的大神均適用。此外,你肯定會(huì)愛上這個(gè)工具的可視化編程和 Python 腳本。它不僅有機(jī)器學(xué)習(xí)的組件,還附加有生物信息和文本挖掘,可以說是充滿了數(shù)據(jù)分析的各種功能。
5)KNIME——數(shù)據(jù)處理主要有三個(gè)部分:提取、轉(zhuǎn)換和加載。而這三者KNIME都可以做到。KNIME為您提供了一個(gè)圖形化的用戶界面,以便對數(shù)據(jù)節(jié)點(diǎn)進(jìn)行處理。它是一個(gè)開源的數(shù)據(jù)分析、報(bào)告和綜合平臺(tái),同時(shí)還通過其模塊化數(shù)據(jù)的流水型概念,集成了各種機(jī)器學(xué)習(xí)的組件和數(shù)據(jù)挖掘,并引起了商業(yè)智能和財(cái)務(wù)數(shù)據(jù)分析的注意。KNIME是基于Eclipse,用Java編寫的,并且易于擴(kuò)展和補(bǔ)充插件。其附加功能可隨時(shí)添加,并且其大量的數(shù)據(jù)集成模塊已包含在核心版本中。
6)R-Programming——如果我告訴你R項(xiàng)目,一個(gè)GNU項(xiàng)目,是由R(R-programming簡稱,以下統(tǒng)稱R)自身編寫的,你會(huì)怎么想?它主要是由C語言和FORTRAN語言編寫的,并且很多模塊都是由R編寫的,這是一款針對編程語言和軟件環(huán)境進(jìn)行統(tǒng)計(jì)計(jì)算和制圖的免費(fèi)軟件。R語言被廣泛應(yīng)用于數(shù)據(jù)挖掘,以及開發(fā)統(tǒng)計(jì)軟件和數(shù)據(jù)分析中。近年來,易用性和可擴(kuò)展性也大大提高了 R 的知名度。除了數(shù)據(jù),它還提供統(tǒng)計(jì)和制圖技術(shù),包括線性和非線性建模,經(jīng)典的統(tǒng)計(jì)測試,時(shí)間序列分析、分類、收集等等。
3、數(shù)據(jù)分析語言3種工具:隨著數(shù)據(jù)科學(xué)分析工具的發(fā)展,一方面成功解決了數(shù)據(jù)科學(xué)中的算法失效、超大規(guī)模數(shù)據(jù)可視化等一系列挑戰(zhàn);另一方面各具特點(diǎn)和優(yōu)缺點(diǎn)。例如Mahout具有優(yōu)秀的大數(shù)據(jù)處理能力,不僅處理數(shù)據(jù)量大且速度快,但可視化能力差。接下來選取R語言、RapidMiner、Mahout三種主流的數(shù)據(jù)科學(xué)分析工具,對其概述并以表格的形式對三者的主要特點(diǎn)進(jìn)行了比較分析,工具基本情況如下。
1)R語言用于統(tǒng)計(jì)計(jì)算和作圖的編程語言和環(huán)境,采用命令行工作方式,在GNU協(xié)議下免費(fèi)發(fā)行,其源代碼可供自由下載和使用。R網(wǎng)站CRAN上提供了大量的第三方程序包,內(nèi)容涵蓋了經(jīng)濟(jì)學(xué)、社會(huì)學(xué)、統(tǒng)計(jì)學(xué)、生物信息學(xué)等諸多方面,這也是為什么越來越多的各行各業(yè)的人員喜愛R的一個(gè)重要原因。針對傳統(tǒng)分析軟件的擴(kuò)展性差以及Hadoop的分析功能薄弱的弱勢,研究人員致力于將R語言和Hadoop的集成。R作為開源的統(tǒng)計(jì)分析軟件,通過R與Hadoop的深度集成,把數(shù)據(jù)計(jì)算推向并行處理,使Hadoop獲得強(qiáng)大的深度分析能力。
2)RapidMiner原名Yale,是一種用于數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)以及商業(yè)預(yù)測分析的開源計(jì)算環(huán)境。其既可以使用簡單的腳本語言進(jìn)行大規(guī)模進(jìn)程操作,也可以通過JavaAPI或GUI模式進(jìn)行操作。因?yàn)槠渚邆銰UI特性,所以對于數(shù)據(jù)挖掘的初學(xué)者比較容易入門。RapidMiner6具有友好而強(qiáng)大的工具箱,提供快而穩(wěn)定的分析,可以在短時(shí)間內(nèi)設(shè)計(jì)好一個(gè)原型,使得數(shù)據(jù)挖掘過程中的關(guān)鍵決策盡可能早地實(shí)現(xiàn)。幫助減少客戶流失、進(jìn)行情感分析、預(yù)測性維護(hù)以及市場直銷等。
3)ApacheMahout起源于2008年,其主要目標(biāo)是構(gòu)建一個(gè)可伸縮的機(jī)器學(xué)習(xí)算法的資源庫,它提供了一些經(jīng)典的機(jī)器學(xué)習(xí)算法,旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。目前,Mahout的項(xiàng)目包括頻繁子項(xiàng)挖掘、分類、聚類、推薦引擎(協(xié)同過濾)。
4、數(shù)據(jù)挖掘5種工具分別為:Intelligent Miner、SAS Enterpreise Miner 、SPSS Clementine、馬克威分析系統(tǒng)、GDM,下面將作部分介紹。
1)Intelligent Miner綜述:IBM的Exterprise Miner簡單易用,是理解數(shù)據(jù)挖掘的好的開始。能處理大。數(shù)據(jù)量的挖掘,功能一般,可能僅滿足要求.沒有數(shù)據(jù)探索功能。與其他軟件接口差,只能用 DB2,連接DB2以外的數(shù)據(jù)庫時(shí),如Oracle, SAS, SPSS需 要安裝DataJoiner作為中間軟件。難以發(fā)布。結(jié)果美觀,但同樣不好理解。
2)SAS Enterprise Miner綜述:SAS完仝以統(tǒng)計(jì)理論為基礎(chǔ),功能強(qiáng)大,有完備的數(shù)據(jù)探索功能。但難以掌握,要求是高級(jí)統(tǒng)計(jì)分析專業(yè)人員.結(jié)果難以理解。價(jià)格也極其昂貴,而且是租賃模式。基本內(nèi)容:支持SAS統(tǒng)計(jì)模塊,使之具有杰出的力量和影響,它還通過大量數(shù)據(jù)挖掘算法增強(qiáng)了那些模塊。SAS使用它的SEMMA方法學(xué)以提供一個(gè)能支持包括關(guān)聯(lián)、聚類、決策樹、神經(jīng)元網(wǎng)絡(luò)和統(tǒng)計(jì)回歸在內(nèi)的廣闊范圍的模型數(shù)據(jù)挖掘工具。
3)SPSS(Statistical Product and Service Solutions)綜述:“統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案”軟件。最初軟件全稱為“社會(huì)科學(xué)統(tǒng)計(jì)軟件包”。但是隨著SPSS產(chǎn)品服務(wù)領(lǐng)域的擴(kuò)大和服務(wù)深度的增加,SPSS公司已于2000年正式將英文全稱更改為“統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案”。用作多個(gè)領(lǐng)域和行業(yè),是世界上應(yīng)用最廣泛的專業(yè)統(tǒng)計(jì)軟件。