Ⅰ 如何讓Hadoop結合R語言做統計和大數據分析
Hadoop提供非常方便的方式來獲取一個任務的統計信息,使用以下命令即可作到:
$ hadoop job -history all <job output directory>
這個命令會分析任務的兩個歷史文件(這兩個文件存儲在<job output directory>/_logs/history目錄中)並計算任務的統計信息。
Ⅱ 如何讓Hadoop結合R語言做大數據分析
R語言和Hadoop讓我們體會到了,兩種技術在各自領域的強大。很多開發人員在計算機的角度,都會提出下面2個問題。問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?x0dx0a問題2: Mahout同樣可以做數據挖掘和機器學習,和R語言的區別是什麼?下面我嘗試著做一個解答:問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?x0dx0ax0dx0aa. Hadoop家族的強大之處,在於對大數據的處理,讓原來的不可能(TB,PB數據量計算),成為了可能。x0dx0ab. R語言的強大之處,在於統計分析,在沒有Hadoop之前,我們對於大數據的處理,要取樣本,假設檢驗,做回歸,長久以來R語言都是統計學家專屬的工具。x0dx0ac. 從a和b兩點,我們可以看出,hadoop重點是全量數據分析,而R語言重點是樣本數據分析。 兩種技術放在一起,剛好是最長補短!x0dx0ad. 模擬場景:對1PB的新聞網站訪問日誌做分析,預測未來流量變化x0dx0ad1:用R語言,通過分析少量數據,對業務目標建回歸建模,並定義指標d2:用Hadoop從海量日誌數據中,提取指標數據d3:用R語言模型,對指標數據進行測試和調優d4:用Hadoop分步式演算法,重寫R語言的模型,部署上線這個場景中,R和Hadoop分別都起著非常重要的作用。以計算機開發人員的思路,所有有事情都用Hadoop去做,沒有數據建模和證明,」預測的結果」一定是有問題的。以統計人員的思路,所有的事情都用R去做,以抽樣方式,得到的「預測的結果」也一定是有問題的。所以讓二者結合,是產界業的必然的導向,也是產界業和學術界的交集,同時也為交叉學科的人才提供了無限廣闊的想像空間。問題2: Mahout同樣可以做數據挖掘和機器學習,和R語言的區別是什麼?x0dx0ax0dx0aa. Mahout是基於Hadoop的數據挖掘和機器學習的演算法框架,Mahout的重點同樣是解決大數據的計算的問題。x0dx0ab. Mahout目前已支持的演算法包括,協同過濾,推薦演算法,聚類演算法,分類演算法,LDA, 樸素bayes,隨機森林。上面的演算法中,大部分都是距離的演算法,可以通過矩陣分解後,充分利用MapRece的並行計算框架,高效地完成計算任務。x0dx0ac. Mahout的空白點,還有很多的數據挖掘演算法,很難實現MapRece並行化。Mahout的現有模型,都是通用模型,直接用到的項目中,計算結果只會比隨機結果好一點點。Mahout二次開發,要求有深厚的JAVA和Hadoop的技術基礎,最好兼有 「線性代數」,「概率統計」,「演算法導論」 等的基礎知識。所以想玩轉Mahout真的不是一件容易的事情。x0dx0ad. R語言同樣提供了Mahout支持的約大多數演算法(除專有演算法),並且還支持大量的Mahout不支持的演算法,演算法的增長速度比mahout快N倍。並且開發簡單,參數配置靈活,對小型數據集運算速度非常快。x0dx0a雖然,Mahout同樣可以做數據挖掘和機器學習,但是和R語言的擅長領域並不重合。集百家之長,在適合的領域選擇合適的技術,才能真正地「保質保量」做軟體。x0dx0ax0dx0a如何讓Hadoop結合R語言?x0dx0ax0dx0a從上一節我們看到,Hadoop和R語言是可以互補的,但所介紹的場景都是Hadoop和R語言的分別處理各自的數據。一旦市場有需求,自然會有商家填補這個空白。x0dx0ax0dx0a1). RHadoopx0dx0ax0dx0aRHadoop是一款Hadoop和R語言的結合的產品,由RevolutionAnalytics公司開發,並將代碼開源到github社區上面。RHadoop包含三個R包 (rmr,rhdfs,rhbase),分別是對應Hadoop系統架構中的,MapRece, HDFS, HBase 三個部分。x0dx0ax0dx0a2). RHiveRHive是一款通過R語言直接訪問Hive的工具包,是由NexR一個韓國公司研發的。x0dx0ax0dx0a3). 重寫Mahout用R語言重寫Mahout的實現也是一種結合的思路,我也做過相關的嘗試。x0dx0ax0dx0a4).Hadoop調用Rx0dx0ax0dx0a上面說的都是R如何調用Hadoop,當然我們也可以反相操作,打通JAVA和R的連接通道,讓Hadoop調用R的函數。但是,這部分還沒有商家做出成形的產品。x0dx0ax0dx0a5. R和Hadoop在實際中的案例x0dx0ax0dx0aR和Hadoop的結合,技術門檻還是有點高的。對於一個人來說,不僅要掌握Linux, Java, Hadoop, R的技術,還要具備 軟體開發,演算法,概率統計,線性代數,數據可視化,行業背景 的一些基本素質。在公司部署這套環境,同樣需要多個部門,多種人才的的配合。Hadoop運維,Hadoop演算法研發,R語言建模,R語言MapRece化,軟體開發,測試等等。所以,這樣的案例並不太多。
Ⅲ 大數據分析方法解讀以及相關工具介紹
大數據分析方法解讀以及相關工具介紹
要知道,大數據已不再是數據大,最重要的現實就是對大數據進行分析,只有通過分析才能獲取很多智能的,深入的,有價值的信息。
越來越多的應用涉及到大數據,這些大數據的屬性,包括數量,速度,多樣性等等都是呈現了大數據不斷增長的復雜性,所以,大數據的分析方法在大數據領域就顯得尤為重要,可以說是決定最終信息是否有價值的決定性因素。基於此,大數據分析方法理論有哪些呢?
大數據分析的五個基本方面
(預測性分析能力)
數據挖掘可以讓分析員更好的理解數據,而預測性分析可以讓分析員根據可視化分析和數據挖掘的結果做出一些預測性的判斷。
(數據質量和數據管理)
數據質量和數據管理是一些管理方面的最佳實踐。通過標准化的流程和工具對數據進行處理可以保證一個預先定義好的高質量的分析結果。
AnalyticVisualizations(可視化分析)
不管是對數據分析專家還是普通用戶,數據可視化是數據分析工具最基本的要求。可視化可以直觀的展示數據,讓數據自己說話,讓觀眾聽到結果。
SemanticEngines(語義引擎)
我們知道由於非結構化數據的多樣性帶來了數據分析的新的挑戰,我們需要一系列的工具去解析,提取,分析數據。語義引擎需要被設計成能夠從「文檔」中智能提取信息。
DataMiningAlgorithms(數據挖掘演算法)
可視化是給人看的,數據挖掘就是給機器看的。集群、分割、孤立點分析還有其他的演算法讓我們深入數據內部,挖掘價值。這些演算法不僅要處理大數據的量,也要處理大數據的速度。
假如大數據真的是下一個重要的技術革新的話,我們最好把精力關注在大數據能給我們帶來的好處,而不僅僅是挑戰。
大數據處理
大數據處理數據時代理念的三大轉變:要全體不要抽樣,要效率不要絕對精確,要相關不要因果。具體的大數據處理方法其實有很多,但是根據長時間的實踐,筆者總結了一個基本的大數據處理流程,並且這個流程應該能夠對大家理順大數據的處理有所幫助。整個處理流程可以概括為四步,分別是採集、導入和預處理、統計和分析,以及挖掘。
採集
大數據的採集是指利用多個資料庫來接收發自客戶端的數據,並且用戶可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關系型資料庫MySQL和Oracle等來存儲每一筆事務數據,除此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於數據的採集。
在大數據的採集過程中,其主要特點和挑戰是並發數高,因為同時有可能會有成千上萬的用戶來進行訪問和操作,比如火車票售票網站和淘寶,它們並發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間進行負載均衡和分片的確是需要深入的思考和設計。
統計/分析
統計與分析主要利用分布式資料庫,或者分布式計算集群來對存儲於其內的海量數據進行普通的分析和分類匯總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於MySQL的列式存儲Infobright等,而一些批處理,或者基於半結構化數據的需求可以使用Hadoop。統計與分析這部分的主要特點和挑戰是分析涉及的數據量大,其對系統資源,特別是I/O會有極大的佔用。
導入/預處理
雖然採集端本身會有很多資料庫,但是如果要對這些海量數據進行有效的分析,還是應該將這些來自前端的數據導入到一個集中的大型分布式資料庫,或者分布式存儲集群,並且可以在導入基礎上做一些簡單的清洗和預處理工作。也有一些用戶會在導入時使用來自Twitter的Storm來對數據進行流式計算,來滿足部分業務的實時計算需求。導入與預處理過程的特點和挑戰主要是導入的數據量大,每秒鍾的導入量經常會達到百兆,甚至千兆級別。
挖掘
與前面統計和分析過程不同的是,數據挖掘一般沒有什麼預先設定好的主題,主要是在現有數據上面進行基於各種演算法的計算,從而起到預測的效果,從而實現一些高級別數據分析的需求。比較典型演算法有用於聚類的K-Means、用於統計學習的SVM和用於分類的Naive Bayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很復雜,並且計算涉及的數據量和計算量都很大,還有,常用數據挖掘演算法都以單線程為主。
大數據分析工具詳解 IBM惠普微軟工具在列
去年,IBM宣布以17億美元收購數據分析公司Netezza;EMC繼收購數據倉庫軟體廠商Greenplum後再次收購集群NAS廠商Isilon;Teradata收購了Aster Data 公司;隨後,惠普收購實時分析平台Vertica等,這些收購事件指向的是同一個目標市場——大數據。是的,大數據時代已經來臨,大家都在摩拳擦掌,搶占市場先機。
而在這裡面,最耀眼的明星是hadoop,Hadoop已被公認為是新一代的大數據處理平台,EMC、IBM、Informatica、Microsoft以及Oracle都紛紛投入了Hadoop的懷抱。對於大數據來說,最重要的還是對於數據的分析,從裡面尋找有價值的數據幫助企業作出更好的商業決策。下面,我們就來看以下八大關於大數據分析的工具。
EMC Greenplum統一分析平台(UAP)
Greenplum在2010年被EMC收購了其EMC Greenplum統一分析平台(UAP)是一款單一軟體平台,數據團隊和分析團隊可以在該平台上無縫地共享信息、協作分析,沒必要在不同的孤島上工作,或者在不同的孤島之間轉移數據。正因為如此,UAP包括ECM Greenplum關系資料庫、EMC Greenplum HD Hadoop發行版和EMC Greenplum Chorus。
EMC為大數據開發的硬體是模塊化的EMC數據計算設備(DCA),它能夠在一個設備裡面運行並擴展Greenplum關系資料庫和Greenplum HD節點。DCA提供了一個共享的指揮中心(Command Center)界面,讓管理員可以監控、管理和配置Greenplum資料庫和Hadoop系統性能及容量。隨著Hadoop平台日趨成熟,預計分析功能會急劇增加。
IBM打組合拳提供BigInsights和BigCloud
幾年前,IBM開始在其實驗室嘗試使用Hadoop,但是它在去年將相關產品和服務納入到商業版IBM在去年5月推出了InfoSphere BigI雲版本的 InfoSphere BigInsights使組織內的任何用戶都可以做大數據分析。雲上的BigInsights軟體可以分析資料庫里的結構化數據和非結構化數據,使決策者能夠迅速將洞察轉化為行動。
IBM隨後又在10月通過其智慧雲企業(SmartCloud Enterprise)基礎架構,將BigInsights和BigSheets作為一項服務來提供。這項服務分基礎版和企業版;一大賣點就是客戶不必購買支持性硬體,也不需要IT專門知識,就可以學習和試用大數據處理和分析功能。據IBM聲稱,客戶用不了30分鍾就能搭建起Hadoop集群,並將數據轉移到集群裡面,數據處理費用是每個集群每小時60美分起價。
Informatica 9.1:將大數據的挑戰轉化為大機遇
Informatica公司在去年10月則更深入一步,當時它推出了HParser,這是一種針對Hadoop而優化的數據轉換環境。據Informatica聲稱,軟體支持靈活高效地處理Hadoop裡面的任何文件格式,為Hadoop開發人員提供了即開即用的解析功能,以便處理復雜而多樣的數據源,包括日誌、文檔、二進制數據或層次式數據,以及眾多行業標准格式(如銀行業的NACHA、支付業的SWIFT、金融數據業的FIX和保險業的ACORD)。正如資料庫內處理技術加快了各種分析方法,Informatica同樣將解析代碼添加到Hadoop裡面,以便充分利用所有這些處理功能,不久會添加其他的數據處理代碼。
Informatica HParser是Informatica B2B Data Exchange家族產品及Informatica平台的最新補充,旨在滿足從海量無結構數據中提取商業價值的日益增長的需求。去年, Informatica成功地推出了創新的Informatica 9.1 for Big Data,是全球第一個專門為大數據而構建的統一數據集成平台。
甲骨文大數據機——Oracle Big Data Appliance
甲骨文的Big Data Appliance集成系統包括Cloudera的Hadoop系統管理軟體和支持服務Apache Hadoop 和Cloudera Manager。甲骨文視Big Data Appliance為包括Exadata、Exalogic和 Exalytics In-Memory Machine的「建造系統」。Oracle大數據機(Oracle Big Data Appliance),是一個軟、硬體集成系統,在系統中融入了Cloudera的Distribution Including Apache Hadoop、Cloudera Manager和一個開源R。該大數據機採用Oracle Linux操作系統,並配備Oracle NoSQL資料庫社區版本和Oracle HotSpot Java虛擬機。Big Data Appliance為全架構產品,每個架構864GB存儲,216個CPU內核,648TBRAW存儲,每秒40GB的InifiniBand連接。Big Data Appliance售價45萬美元,每年硬軟體支持費用為12%。
甲骨文Big Data Appliance與EMC Data Computing Appliance匹敵,IBM也曾推出數據分析軟體平台InfoSphere BigInsights,微軟也宣布在2012年發布Hadoop架構的SQL Server 2012大型數據處理平台。
統計分析方法以及統計軟體詳細介紹
統計分析方法有哪幾種?下面我們將詳細闡述,並介紹一些常用的統計分析軟體。
一、指標對比分析法指標對比分析法
統計分析的八種方法一、指標對比分析法指標對比分析法,又稱比較分析法,是統計分析中最常用的方法。是通過有關的指標對比來反映事物數量上差異和變化的方法。有比較才能鑒別。單獨看一些指標,只能說明總體的某些數量特徵,得不出什麼結論性的認識;一經過比較,如與國外、外單位比,與歷史數據比,與計劃相比,就可以對規模大小、水平高低、速度快慢作出判斷和評價。
指標分析對比分析方法可分為靜態比較和動態比較分析。靜態比較是同一時間條件下不同總體指標比較,如不同部門、不同地區、不同國家的比較,也叫橫向比較;動態比較是同一總體條件不同時期指標數值的比較,也叫縱向比較。這兩種方法既可單獨使用,也可結合使用。進行對比分析時,可以單獨使用總量指標或相對指標或平均指標,也可將它們結合起來進行對比。比較的結果可用相對數,如百分數、倍數、系數等,也可用相差的絕對數和相關的百分點(每1%為一個百分點)來表示,即將對比的指標相減。
二、分組分析法指標對比分析法
分組分析法指標對比分析法對比,但組成統計總體的各單位具有多種特徵,這就使得在同一總體范圍內的各單位之間產生了許多差別,統計分析不僅要對總體數量特徵和數量關系進行分析,還要深入總體的內部進行分組分析。分組分析法就是根據統計分析的目的要求,把所研究的總體按照一個或者幾個標志劃分為若干個部分,加以整理,進行觀察、分析,以揭示其內在的聯系和規律性。
統計分組法的關鍵問題在於正確選擇分組標值和劃分各組界限。
三、時間數列及動態分析法
時間數列。是將同一指標在時間上變化和發展的一系列數值,按時間先後順序排列,就形成時間數列,又稱動態數列。它能反映社會經濟現象的發展變動情況,通過時間數列的編制和分析,可以找出動態變化規律,為預測未來的發展趨勢提供依據。時間數列可分為絕對數時間數列、相對數時間數列、平均數時間數列。
時間數列速度指標。根據絕對數時間數列可以計算的速度指標:有發展速度、增長速度、平均發展速度、平均增長速度。
動態分析法。在統計分析中,如果只有孤立的一個時期指標值,是很難作出判斷的。如果編制了時間數列,就可以進行動態分析,反映其發展水平和速度的變化規律。
進行動態分析,要注意數列中各個指標具有的可比性。總體范圍、指標計算方法、計算價格和計量單位,都應該前後一致。時間間隔一般也要一致,但也可以根據研究目的,採取不同的間隔期,如按歷史時期分。為了消除時間間隔期不同而產生的指標數值不可比,可採用年平均數和年平均發展速度來編制動態數列。此外在統計上,許多綜合指標是採用價值形態來反映實物總量,如國內生產總值、工業總產值、社會商品零售總額等計算不同年份的發展速度時,必須消除價格變動因素的影響,才能正確的反映實物量的變化。也就是說必須用可比價格(如用不變價或用價格指數調整)計算不同年份相同產品的價值,然後才能進行對比。
為了觀察我國經濟發展的波動軌跡,可將各年國內生產總值的發展速度編制時間數列,並據以繪製成曲線圖,令人得到直觀認識。
四、指數分析法
指數是指反映社會經濟現象變動情況的相對數。有廣義和狹義之分。根據指數所研究的范圍不同可以有個體指數、類指數與總指數之分。
指數的作用:一是可以綜合反映復雜的社會經濟現象的總體數量變動的方向和程度;二是可以分析某種社會經濟現象的總變動受各因素變動影響的程度,這是一種因素分析法。操作方法是:通過指數體系中的數量關系,假定其他因素不變,來觀察某一因素的變動對總變動的影響。
用指數進行因素分析。因素分析就是將研究對象分解為各個因素,把研究對象的總體看成是各因素變動共同的結果,通過對各個因素的分析,對研究對象總變動中各項因素的影響程度進行測定。因素分析按其所研究的對象的統計指標不同可分為對總量指標的變動的因素分析,對平均指標變動的因素分析。
五、平衡分析法
平衡分析是研究社會經濟現象數量變化對等關系的一種方法。它把對立統一的雙方按其構成要素一一排列起來,給人以整體的概念,以便於全局來觀察它們之間的平衡關系。平衡關系廣泛存在於經濟生活中,大至全國宏觀經濟運行,小至個人經濟收支。平衡種類繁多,如財政平衡表、勞動力平衡表、能源平衡表、國際收支平衡表、投入產出平衡表,等等。平衡分析的作用:一是從數量對等關繫上反映社會經濟現象的平衡狀況,分析各種比例關系相適應狀況;二是揭示不平衡的因素和發展潛力;三是利用平衡關系可以從各項已知指標中推算未知的個別指標。
六、綜合評價分析
社會經濟分析現象往往是錯綜復雜的,社會經濟運行狀況是多種因素綜合作用的結果,而且各個因素的變動方向和變動程度是不同的。如對宏觀經濟運行的評價,涉及生活、分配、流通、消費各個方面;對企業經濟效益的評價,涉及人、財、物合理利用和市場銷售狀況。如果只用單一指標,就難以作出恰當的評價。
進行綜合評價包括四個步驟:
1.確定評價指標體系,這是綜合評價的基礎和依據。要注意指標體系的全面性和系統性。
2.搜集數據,並對不同計量單位的指標數值進行同度量處理。可採用相對化處理、函數化處理、標准化處理等方法。
3.確定各指標的權數,以保證評價的科學性。根據各個指標所處的地位和對總體影響程度不同,需要對不同指標賦予不同的權數。
4.對指標進行匯總,計算綜合分值,並據此作出綜合評價。
七、景氣分析
經濟波動是客觀存在的,是任何國家都難以完全避免的。如何避免大的經濟波動,保持經濟的穩定發展,一直是各國政府和經濟之專家在宏觀調控和決策中面臨的重要課題,景氣分析正是適應這一要求而產生和發展的。景氣分析是一種綜合評價分析,可分為宏觀經濟景氣分析和企業景氣調查分析。
宏觀經濟景氣分析。是國家統計局20世紀80年代後期開始著手建立監測指標體系和評價方法,經過十多年時間和不斷完善,已形成制度,定期提供景氣分析報告,對宏觀經濟運行狀態起到晴雨表和報警器的作用,便於國務院和有關部門及時採取宏觀調控措施。以經常性的小調整,防止經濟的大起大落。
企業景氣調查分析。是全國的大中型各類企業中,採取抽樣調查的方法,通過問卷的形式,讓企業負責人回答有關情況判斷和預期。內容分為兩類:一是對宏觀經濟總體的判斷和預期;一是對企業經營狀況的判斷和預期,如產品訂單、原材料購進、價格、存貨、就業、市場需求、固定資產投資等。
八、預測分析
宏觀經濟決策和微觀經濟決策,不僅需要了解經濟運行中已經發生了的實際情況,而且更需要預見未來將發生的情況。根據已知的過去和現在推測未來,就是預測分析。
統計預測屬於定量預測,是以數據分析為主,在預測中結合定性分析。統計預測的方法大致可分為兩類:一類是主要根據指標時間數列自身變化與時間的依存關系進行預測,屬於時間數列分析;另一類是根據指標之間相互影響的因果關系進行預測,屬於回歸分析。
預測分析的方法有回歸分析法、滑動平均法、指數平滑法、周期(季節)變化分析和隨機變化分析等。比較復雜的預測分析需要建立計量經濟模型,求解模型中的參數又有許多方法。
Ⅳ 大數據分析工具詳盡介紹&數據分析演算法
大數據分析工具詳盡介紹&數據分析演算法
1、 Hadoop
Hadoop 是一個能夠對大量數據進行分布式處理的軟體框架。但是 Hadoop 是以一種可靠、高效、可伸縮的方式進行處理的。Hadoop 是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分布處理。Hadoop 是高效的,因為它以並行的方式工作,通過並行處理加快處理速度。Hadoop 還是可伸縮的,能夠處理 PB 級數據。此外,Hadoop 依賴於社區伺服器,因此它的成本比較低,任何人都可以使用。
Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平台。用戶可以輕松地在Hadoop上開發和運行處理海量數據的應用程序。它主要有以下幾個優點:
⒈高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
⒉高擴展性。Hadoop是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
⒊高效性。Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。
⒋高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
Hadoop帶有用 Java 語言編寫的框架,因此運行在 Linux 生產平台上是非常理想的。Hadoop 上的應用程序也可以使用其他語言編寫,比如 C++。
2、 HPCC
HPCC,High Performance Computing and Communications(高性能計算與通信)的縮寫。1993年,由美國科學、工程、技術聯邦協調理事會向國會提交了「重大挑戰項目:高性能計算與 通信」的報告,也就是被稱為HPCC計劃的報告,即美國總統科學戰略項目,其目的是通過加強研究與開發解決一批重要的科學與技術挑戰問題。HPCC是美國 實施信息高速公路而上實施的計劃,該計劃的實施將耗資百億美元,其主要目標要達到:開發可擴展的計算系統及相關軟體,以支持太位級網路傳輸性能,開發千兆 比特網路技術,擴展研究和教育機構及網路連接能力。
該項目主要由五部分組成:
1、高性能計算機系統(HPCS),內容包括今後幾代計算機系統的研究、系統設計工具、先進的典型系統及原有系統的評價等;
2、先進軟體技術與演算法(ASTA),內容有巨大挑戰問題的軟體支撐、新演算法設計、軟體分支與工具、計算計算及高性能計算研究中心等;
3、國家科研與教育網格(NREN),內容有中接站及10億位級傳輸的研究與開發;
4、基本研究與人類資源(BRHR),內容有基礎研究、培訓、教育及課程教材,被設計通過獎勵調查者-開始的,長期 的調查在可升級的高性能計算中來增加創新意識流,通過提高教育和高性能的計算訓練和通信來加大熟練的和訓練有素的人員的聯營,和來提供必需的基礎架構來支 持這些調查和研究活動;
5、信息基礎結構技術和應用(IITA ),目的在於保證美國在先進信息技術開發方面的領先地位。
3、 Storm
Storm是自由的開源軟體,一個分布式的、容錯的實時計算系統。Storm可以非常可靠的處理龐大的數據流,用於處理Hadoop的批量數據。Storm很簡單,支持許多種編程語言,使用起來非常有趣。Storm由Twitter開源而來,其它知名的應用企業包括Groupon、淘寶、支付寶、阿里巴巴、樂元素、Admaster等等。
Storm有許多應用領域:實時分析、在線機器學習、不停頓的計算、分布式RPC(遠過程調用協議,一種通過網路從遠程計算機程序上請求服務)、 ETL(Extraction-Transformation-Loading的縮寫,即數據抽取、轉換和載入)等等。Storm的處理速度驚人:經測 試,每個節點每秒鍾可以處理100萬個數據元組。Storm是可擴展、容錯,很容易設置和操作。
4、 Apache Drill
為了幫助企業用戶尋找更為有效、加快Hadoop數據查詢的方法,Apache軟體基金會近日發起了一項名為「Drill」的開源項目。Apache Drill 實現了 Google』s Dremel.
據Hadoop廠商MapR Technologies公司產品經理Tomer Shiran介紹,「Drill」已經作為Apache孵化器項目來運作,將面向全球軟體工程師持續推廣。
該項目將會創建出開源版本的谷歌Dremel Hadoop工具(谷歌使用該工具來為Hadoop數據分析工具的互聯網應用提速)。而「Drill」將有助於Hadoop用戶實現更快查詢海量數據集的目的。
「Drill」項目其實也是從谷歌的Dremel項目中獲得靈感:該項目幫助谷歌實現海量數據集的分析處理,包括分析抓取Web文檔、跟蹤安裝在Android Market上的應用程序數據、分析垃圾郵件、分析谷歌分布式構建系統上的測試結果等等。
通過開發「Drill」Apache開源項目,組織機構將有望建立Drill所屬的API介面和靈活強大的體系架構,從而幫助支持廣泛的數據源、數據格式和查詢語言。
5、 RapidMiner
RapidMiner是世界領先的數據挖掘解決方案,在一個非常大的程度上有著先進技術。它數據挖掘任務涉及范圍廣泛,包括各種數據藝術,能簡化數據挖掘過程的設計和評價。
功能和特點
免費提供數據挖掘技術和庫
100%用Java代碼(可運行在操作系統)
數據挖掘過程簡單,強大和直觀
內部XML保證了標准化的格式來表示交換數據挖掘過程
可以用簡單腳本語言自動進行大規模進程
多層次的數據視圖,確保有效和透明的數據
圖形用戶界面的互動原型
命令行(批處理模式)自動大規模應用
Java API(應用編程介面)
簡單的插件和推廣機制
強大的可視化引擎,許多尖端的高維數據的可視化建模
400多個數據挖掘運營商支持
耶魯大學已成功地應用在許多不同的應用領域,包括文本挖掘,多媒體挖掘,功能設計,數據流挖掘,集成開發的方法和分布式數據挖掘。
6、 Pentaho BI
Pentaho BI 平台不同於傳統的BI 產品,它是一個以流程為中心的,面向解決方案(Solution)的框架。其目的在於將一系列企業級BI產品、開源軟體、API等等組件集成起來,方便商務智能應用的開發。它的出現,使得一系列的面向商務智能的獨立產品如Jfree、Quartz等等,能夠集成在一起,構成一項項復雜的、完整的商務智能解決方案。
Pentaho BI 平台,Pentaho Open BI 套件的核心架構和基礎,是以流程為中心的,因為其中樞控制器是一個工作流引擎。工作流引擎使用流程定義來定義在BI 平台上執行的商業智能流程。流程可以很容易的被定製,也可以添加新的流程。BI 平台包含組件和報表,用以分析這些流程的性能。目前,Pentaho的主要組成元素包括報表生成、分析、數據挖掘和工作流管理等等。這些組件通過 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技術集成到Pentaho平台中來。 Pentaho的發行,主要以Pentaho SDK的形式進行。
Pentaho SDK共包含五個部分:Pentaho平台、Pentaho示例資料庫、可獨立運行的Pentaho平台、Pentaho解決方案示例和一個預先配製好的 Pentaho網路伺服器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代碼的主體;Pentaho資料庫為 Pentaho平台的正常運行提供的數據服務,包括配置信息、Solution相關的信息等等,對於Pentaho平台來說它不是必須的,通過配置是可以用其它資料庫服務取代的;可獨立運行的Pentaho平台是Pentaho平台的獨立運行模式的示例,它演示了如何使Pentaho平台在沒有應用伺服器支持的情況下獨立運行;
Pentaho解決方案示例是一個Eclipse工程,用來演示如何為Pentaho平台開發相關的商業智能解決方案。
Pentaho BI 平台構建於伺服器,引擎和組件的基礎之上。這些提供了系統的J2EE 伺服器,安全,portal,工作流,規則引擎,圖表,協作,內容管理,數據集成,分析和建模功能。這些組件的大部分是基於標準的,可使用其他產品替換之。
7、 SAS Enterprise Miner
§ 支持整個數據挖掘過程的完備工具集
§ 易用的圖形界面,適合不同類型的用戶快速建模
§ 強大的模型管理和評估功能
§ 快速便捷的模型發布機制, 促進業務閉環形成
數據分析演算法
大數據分析主要依靠機器學習和大規模計算。機器學習包括監督學習、非監督學習、強化學習等,而監督學習又包括分類學習、回歸學習、排序學習、匹配學習等(見圖1)。分類是最常見的機器學習應用問題,比如垃圾郵件過濾、人臉檢測、用戶畫像、文本情感分析、網頁歸類等,本質上都是分類問題。分類學習也是機器學習領域,研究最徹底、使用最廣泛的一個分支。
最近、Fernández-Delgado等人在JMLR(Journal of Machine Learning Research,機器學習頂級期刊)雜志發表了一篇有趣的論文。他們讓179種不同的分類學習方法(分類學習演算法)在UCI 121個數據集上進行了「大比武」(UCI是機器學習公用數據集,每個數據集的規模都不大)。結果發現Random Forest(隨機森林)和SVM(支持向量機)名列第一、第二名,但兩者差異不大。在84.3%的數據上、Random Forest壓倒了其它90%的方法。也就是說,在大多數情況下,只用Random Forest 或 SVM事情就搞定了。
KNN
K最近鄰演算法。給定一些已經訓練好的數據,輸入一個新的測試數據點,計算包含於此測試數據點的最近的點的分類情況,哪個分類的類型佔多數,則此測試點的分類與此相同,所以在這里,有的時候可以復制不同的分類點不同的權重。近的點的權重大點,遠的點自然就小點。詳細介紹鏈接
Naive Bayes
樸素貝葉斯演算法。樸素貝葉斯演算法是貝葉斯演算法裡面一種比較簡單的分類演算法,用到了一個比較重要的貝葉斯定理,用一句簡單的話概括就是條件概率的相互轉換推導。詳細介紹鏈接
樸素貝葉斯分類是一種十分簡單的分類演算法,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素,樸素貝葉斯的思想基礎是這樣的:對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。通俗來說,就好比這么個道理,你在街上看到一個黑人,我問你你猜這哥們哪裡來的,你十有八九猜非洲。為什麼呢?因為黑人中非洲人的比率最高,當然人家也可能是美洲人或亞洲人,但在沒有其它可用信息下,我們會選擇條件概率最大的類別,這就是樸素貝葉斯的思想基礎。
SVM
支持向量機演算法。支持向量機演算法是一種對線性和非線性數據進行分類的方法,非線性數據進行分類的時候可以通過核函數轉為線性的情況再處理。其中的一個關鍵的步驟是搜索最大邊緣超平面。詳細介紹鏈接
Apriori
Apriori演算法是關聯規則挖掘演算法,通過連接和剪枝運算挖掘出頻繁項集,然後根據頻繁項集得到關聯規則,關聯規則的導出需要滿足最小置信度的要求。詳細介紹鏈接
PageRank
網頁重要性/排名演算法。PageRank演算法最早產生於Google,核心思想是通過網頁的入鏈數作為一個網頁好快的判定標准,如果1個網頁內部包含了多個指向外部的鏈接,則PR值將會被均分,PageRank演算法也會遭到LinkSpan攻擊。詳細介紹鏈接
RandomForest
隨機森林演算法。演算法思想是決策樹+boosting.決策樹採用的是CART分類回歸數,通過組合各個決策樹的弱分類器,構成一個最終的強分類器,在構造決策樹的時候採取隨機數量的樣本數和隨機的部分屬性進行子決策樹的構建,避免了過分擬合的現象發生。詳細介紹鏈接
Artificial Neural Network
「神經網路」這個詞實際是來自於生物學,而我們所指的神經網路正確的名稱應該是「人工神經網路(ANNs)」。
人工神經網路也具有初步的自適應與自組織能力。在學習或訓練過程中改變突觸權重值,以適應周圍環境的要求。同一網路因學習方式及內容不同可具有不同的功能。人工神經網路是一個具有學習能力的系統,可以發展知識,以致超過設計者原有的知識水平。通常,它的學習訓練方式可分為兩種,一種是有監督或稱有導師的學習,這時利用給定的樣本標准進行分類或模仿;另一種是無監督學習或稱無為導師學習,這時,只規定學習方式或某些規則,則具體的學習內容隨系統所處環境 (即輸入信號情況)而異,系統可以自動發現環境特徵和規律性,具有更近似人腦的功能。
Ⅳ 數據分析用python還是r語言
Python與R語言的共同點:
Python和R在數據分析和數據挖掘方面都有比較專業和全面的模塊,很多常用的功能,比如矩陣運算、向量運算等都有比較高級的用法。
Python和R兩門語言有許多平台適應性,Linux、Windows都可以用,並且代碼可移植性強。
Python和R比較貼近MATLAB以及minitab等常用的數學工具。
Python和R語言的區別:
數據結構方面,由於從科學計算的角度出發,R中的數據結構非常簡單,主要包含向量、多維數組、列表、數據框;而Python則包含更豐富的數據結構來實現數據更精準的訪問和內存控制,多維數組、元組、集合、字典等等。
Python與R對比速度更快,Python可以直接處理上G的數據;R不行,R分析數據時需要先通過資料庫把大數據轉化為小數據才能交給R做分析,因此R不可能直接分析行為詳單,只能分析統計結果。
Python是一套比較平衡的語言,各方面都可以,無論是對其他語言的調用,和數據源的連接、讀取,對系統的操作,還是正則表達式和文字處理,Python都有著非常明顯的優勢,而R在統計方面比較突出。
Python的pandas借鑒了R的dataframes,R中的rvest則參考了Python的beautiful
soup,兩種語言在一定程度上存在互補性;通常,我們認為Python比R在計算機編程、網路爬蟲上更有優勢;而R在統計分析上是一種更高校的獨立數據分析工具,所以說Python和R各具備不同的優勢,很難抉擇。
不過相對於R來說,Python更加簡單、易學、語法清晰,適合零基礎入門學習,而且掌握Python之後不僅可以從事數據分析崗位工作,還可以從事人工智慧、web開發、游戲開發、運維等工作。
Ⅵ 大數據分析需要哪些工具_大數據的分析工具主要有哪些
雖然數據分析的工具千萬種,綜合起來萬變不離其宗。無非是數梁睜銀據獲取、數據存儲、數據管理、數據計算、數據分析、數據展示等幾個方面。而SAS、R、SPSS、python、excel是被提到頻率最高的數據分析工具。
Python
Python,是一種面向對象、解釋型計算機程序設計語言。Python語法簡潔而清晰,具有豐富和強大的類庫。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C)很輕松地聯結在一起。
常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C重寫,而後封裝為Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平台問題,某些可能不提供跨平台的實現。
R軟體
R是一套完整的數據處理、計算和制圖軟體系統。它可以提供一些集成的統計工具,但更大量的是它提供各種數學計算、統計計算的函數,從而使使用者能靈活機動的橡宴進行數據分析,甚至創造出符合需要的新的統計計算方法。
SPSS
SPSS是世界上最早的統計分析軟體,具有完整的數據輸入、編輯、統計分析、報表、圖形製作等功能,能夠讀取及輸出多種格式的文件。
Excel
可以進行各種數據的處理、統計分析和輔助決策操作,廣泛地應用於管理、統計財經、金融等眾多領域。
SAS軟體
SAS把數據存取、管理、分析和展現有機地融為一體。提供了從基本統計數的計算到各種試驗設計的方差分析,相關早敗回歸分析以及多變數分析的多種統計分析過程,幾乎囊括了所有最新分析方法,其分析技術先進,可靠。分析方法的實現通過過程調用完成。許多過程同時提供了多種演算法和選項。
Ⅶ 如何使用Python分析大數據
#coding:utf-8
#file: FileSplit.py
import os,os.path,time
def FileSplit(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
number = 100000 #每個小文件中保存100000條數據
dataLine = sFile.readline()
tempData = [] #緩存列表
fileNum = 1
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
for row in range(number):
tempData.append(dataLine) #將一行數據添加到列表中
dataLine = sFile.readline()
if not dataLine :
break
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tempData) #將列表保存到文件中
tFile.close()
tempData = [] #清空緩存列表
print(tFilename + " 創建於: " + str(time.ctime()))
fileNum += 1 #文件編號
sFile.close()
if __name__ == "__main__" :
FileSplit("access.log","access")
====
#coding:utf-8
#file: Map.py
import os,os.path,re
def Map(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
dataLine = sFile.readline()
tempData = {} #緩存列表
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
p_re = re.compile(r'(GET|POST)\s(.*?)\sHTTP/1.[01]',re.IGNORECASE) #用正則表達式解析數據
match = p_re.findall(dataLine)
if match:
visitUrl = match[0][1]
if visitUrl in tempData:
tempData[visitUrl] += 1
else:
tempData[visitUrl] = 1
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Map("access\\access.log1.txt","access")
Map("access\\access.log2.txt","access")
Map("access\\access.log3.txt","access")
==
#coding:utf-8
#file: Rece.py
import os,os.path,re
def Rece(sourceFolder, targetFile):
tempData = {} #緩存列表
p_re = re.compile(r'(.*?)(\d{1,}$)',re.IGNORECASE) #用正則表達式解析數據
for root,dirs,files in os.walk(sourceFolder):
for fil in files:
if fil.endswith('_map.txt'): #是rece文件
sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')
dataLine = sFile.readline()
while dataLine: #有數據
subdata = p_re.findall(dataLine) #用空格分割數據
#print(subdata[0][0]," ",subdata[0][1])
if subdata[0][0] in tempData:
tempData[subdata[0][0]] += int(subdata[0][1])
else:
tempData[subdata[0][0]] = int(subdata[0][1])
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Rece("access","access")