
大數據工具比較-R語言和Spark誰更強
現如今的大數據工具真是多,在數據分析師工作中,使用哪些工具更加合適呢,r語言和Spark機器學習那個中有市場率更高些,那個在運算中更快更強些呢?
Spark的機器學習庫。
背景介紹
由于R語言本身是單線程的,所以可能從性能方面對比Spark和R并不是很明智的做法。即使這種比較不是很理想,但是對于那些曾經遇到過這些問題的人,下文中的一些數字一定會讓你很感興趣。
你是否曾把一個機器學習的問題丟到R里運行,然后等上好幾個小時?而僅僅是因為沒有可行的替代方式,你只能耐心地等。所以是時候去看看Spark的機器學習了,它包含R語言大部分的功能,并且在數據轉換和性能上優于R語言。
曾經我嘗試過利用不同的機器學習技術——R語言和Spark的機器學習,去解決同一個特定的問題。為了增加可比性,我甚至讓它們運行在同樣的硬件環境和操作系統上。并且,在Spark中運行單機模式,不帶任何集群的配置。
在我們討論具體細節之前,關于Revolution R 有個簡單的說明。作為R語言的企業版,Revolution R試圖彌補R語言單線程的缺陷。但它只能運行在像Revolution Analytics這樣的專有軟件上,所以可能不是理想的長期方案。如果想獲得微軟Revolution Analytics軟件的擴展,又可能會讓事情變得更為復雜,比方說牽扯到許可證的問題。
因此,社區支持的開源工具,像是Spark,可能成為比R語言企業版更好的選擇。
數據集和問題
分析采用的是Kaggle網站 [譯者注:Kaggle是一個數據分析的競賽平臺,網址:https://www.kaggle.com/]上的數字識別器的數據集,其中包含灰度的手寫數字的圖片,從0到9。
每張圖片高28px,寬28px,大小為784px。每個像素都包含關于像素點明暗的值,值越高代表像素點越暗。像素值是0到255之間的整數,包括0和255。整張圖片包含第一列在內共有785列數據,稱為“標記”,即用戶手寫的數字。
分析的目標是得到一個可以從像素數值中識別數字是幾的模型。
選擇這個數據集的論據是,從數據量上來看,實質上這算不上是一個大數據的問題。
對比情況
針對這個問題,機器學習的步驟如下,以得出預測模型結束:
在上述步驟之前,我已經將標記的數據分成了訓練組和測試組,用于訓練模型和在精度上驗證模型的性能。
大部分的步驟都在R語言和Spark上都運行了。詳細的對比情況如下,主要是對比了主成分分析、二元邏輯模型和樸素貝葉斯分類模型的部分。
主成分分析
主成分分析的主要計算復雜度在對成分的打分上,邏輯步驟如下:
在我們這個例子中,打分的結果是42000 x 784的維度矩陣與784 x 9的矩陣相乘。坦白說,這個計算過程在R中運行了超過4個小時,而同樣的運算Spark只用了10秒多
矩陣相乘差不多是3億次運算或者指令,還有相當多的檢索和查找操作,所以Spark的并行計算引擎可以在10秒鐘完成還是非常令人驚訝的。
我通過查看前9個主成分的方差,來驗證了所產生的主成分的精度。方差和通過R產生的前9個主成分的方差吻合。這一點確保了Spark并沒有犧牲精度來換取性能和數據轉換上的優勢。
邏輯回歸模型
與主成分分析不同的是,在邏輯回歸模型中,訓練和打分的操作都是需要計算的,而且都是極其密集的運算。在這種模型的通用的數據訓練方案中包含一些對于整個數據集矩陣的轉置和逆運算。
由于計算的復雜性,R在訓練和打分都需要過好一會兒才能完成,準確的說是7個小時,而Spark只用了大概5分鐘。
這里我在45個從0到9的雙位數字上運行了二元邏輯回歸模型,打分/驗證也是在這45個測試數據上進行的。
我也并行執行了多元邏輯回歸模型,作為多類分類器,大概3分鐘就完成了。而這在R上運行不起來,所以我也沒辦法在數據上進行對比。
對于主成分分析,我采用AUC值 [譯者注: AUC的值就是計算出ROC曲線下面的面積,是度量分類模型好壞的一個標準。]來衡量預測模型在45對數據上的表現,而Spark和R兩者運行的模型結果的AUC值差不多。
樸素貝葉斯分類器
與主成分分析和邏輯回歸不一樣的是,樸素貝葉斯分類器不是密集計算型的。其中需要計算類的先驗概率,然后基于可用的附加數據得到后驗概率。[譯者注:先驗概率是指根據以往經驗和分析得到的概率,它往往作為”由因求果”問題中的”因”出現的概率;后驗概率是指在得到“結果”的信息后重新修正的概率,是“執果尋因”問題中的”果”。]
如上圖所示,R大概花了45余秒完成,而Spark只用了9秒鐘。像之前一樣,兩者的精確度旗鼓相當。
同時我也試著用Spark機器學習運行了決策樹模型,大概花了20秒,而這個在R上完全運行不起來。
Spark機器學習入門指南
對比已經足夠,而這也成就了Spark的機器學習。 最好是從編程指南開始學習它。不過,如果你想早點嘗試并從實踐中學習的話,你可能要痛苦一陣子才能將它運行起來吧。
為搞清楚示例代碼并且在數據集上進行試驗,你需要先去弄懂Spark的RDD [譯者注:RDD,Resilient Distributed Datasets,彈性分布式數據集]支持的基本框架和運算。然后也要弄明白Spark中不同的機器學習程序,并且在上面進行編程。當你的第一個Spark機器學習的程序跑起來的時候,你可能就會意興闌珊了。
以下兩份資料可以幫你避免這些問題,同時理順學習的思路:
https://github.com/vivekmurugesan/experiments/tree/master/spark-ml
https://hub.docker.com/r/vivekmurugesan/spark-hadoop/ Docker容器中已事先安裝Apache Hadoop,并且在偽分布式環境下運行。這可以將大容量文件放進分布式文件系統來測試Spark。通過從分布式文件系統加載記錄,可以很輕松地來創建RDD實例。
產能和精度
人們會使用不同的指標來衡量這些工具的好壞。對我來說,精準度和產能是決定性的因素。
大家總是喜歡R多過于Spark機器學習,是因為經驗學習曲線。他們最終只能選擇在R上采用少量的樣本數據,是因為R在大數據量的樣本上花了太多時間,而這也影響了整個系統的性能。
對我來說,用少量的樣本數據是解決不了問題的,因為少量樣本根本代表不了整體(至少在大部分情況下是這樣)。所以說,如果你使用了少量樣本,就是在精度上選擇了妥協。
一旦你拋棄了少量樣本,就歸結到了生產性能的問題。機器學習的問題本質上就是迭代的問題。如果每次迭代都花費很久的話,那么完工時間就會延長??墒?,如果每次迭代只用一點時間的話,那么留給你敲代碼的時間就會多一些了。
結論
R語言包含了統計計算的庫和像ggplot2這樣可視化分析的庫,所以它不可能被完全廢棄,而且它所帶來的挖掘數據和統計匯總的能力是毋庸置疑的。
但是,當遇到在大數據集上構建模型的問題時,我們應該去挖掘一些像Spark ML的工具。Spark也提供R的包,SparkR可以在分布式數據集上應用R。
最好在你的“數據軍營”中多放點工具,因為你不知道在“打仗”的時候會遇到什么。因此,是時候從過去的R時代邁入Spark ML的新時代了。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24