
為什么有些公司在機器學習業務方面傾向使用 R + Hadoop 方案?
因為他們在不懂R和Hadoop的特征應用場景的情況下,恰好抓到了一根免費,開源的稻草。
R:
R的應用場景不在于無與倫比的統計學習能力,而在于結構化數據下無與倫比的單位代碼產出量。神經網絡,決策樹等基于結構化數據的算法一行代碼搞定,預測又只是一行代碼。這樣,商業數據庫(如包括Oracle,Netezza,Teradata,SAP HANA等)提供了R接口供統計分析人員進行高效實施。 同樣的,SAS和IBM SPSS也做到了一部分高效實施能力,他們沒有的是R獨有的龐大cran packages群。但相似的一點是,R的package群也把它的用戶慣壞了,慣壞到這些人只是覺得這是一個SAS或者SPSS的免費版,而不是去通過代碼學習如何做機器學習哪怕一點點核心原理。你要做的,就是高效的最新結構化數據算法的實施。
最重要的是,從Hadoop上的數據加載到這些庫,不僅保證了數據本身的正確性和結構化,也已經保證了數據模型的第二、第三范式化(CAErwin的第一課),想做任何一個分析,你手邊的數據庫簡單的join就形成了你需要的分析寬表。想想SQL里sum over的設計含義:為什么它要制造數據的冗余?那一定是為了BI或者分析存在的。
Hadoop的應用場景不在于給統計分析軟件提供強力的支持,而只是提供了一個分布式數據的泛用免費框架,基于鍵值對(key value pair)高效的對原始非結構化數據進行存儲。
傳統方式下目測可以做到對連續型數值、離散型數值、字符串、大型字符串BLOB、地理信息(二維點,多邊形)的存儲,Hadoop相當于直接把很多功能擴展:比如Hive作為一個基本工具,直接提供了更廣泛的數據類型存儲方案:數組(array),結構體(struct),鍵值對(map)等。
業務場景:我存儲一篇文章不再需要一坨文字灌進去,先做NLP解析,然后形成 (詞,詞性)的元組,再組成長數組(Array)即可方便的存儲、分析,以及利用內置UDF、自寫UDF對復雜結構行轉列,提取信息。(當然,將NLP解析本身整合在UDF甚至算法中都是可行的,如PySpark)
如果你至今覺得非結構化數據,鍵值對是一種賣弄概念,我就換一個至簡的說法:一個只有兩列的數據表。兩列的mn*2和多列m*n數據表是可以在一定加工代價下互轉的。這種數據結構被大量應用于Java,C++,Python甚至JavaScript中,當你看見類似Hashmap,Hashtable,dict,map等字眼,那就是這貨沒跑了:經過設計,用于存儲的鍵(key)被散列后決定了它能夠被均勻地分布式存儲,值(value)是鍵的跟班,隨著鍵被存儲。
對于非結構化數據而言,元數據和數據不像方表,極其容易抽象出來(無非就是列名和方表的內容)。初看一個半結構化的Json/XML,元數據出現在鍵(key)中,數據出現在值(value)中,容易理解。但在解析其他類型數據,(如網絡日志Url),鍵里的所謂元數據才是要分析的對象(一個用戶反復的使用price=xxx做查詢條件,說明價格敏感,有可能xxx取了好多值甚至所有可能值,key卻很少,可能只有price和brand;此時用戶行為模式出現在key里了。)
結構化和非結構化數據庫結合的R+Hadoop看起來很美,實則困難重重。我的看法是,任何一家在數據分析領域(文本挖掘暫時除外,理由在業務場景里描述過)決定以一個穩健的態度涉足的企業,都無一例外的基于數據強一致性的考慮,選擇傳統的結構化數據庫作為后續結構化分析的依托—— 哪怕他們是收費的。如果習慣代碼開發,Hadoop+python自己做初步的數據處理,而后使用基于java的Mahout是一個很自然的選擇:其提供的矩陣計算(SVD),迭代式聚類算法(如Kmeans),基于圖的迭代模型(一個例子是PageRank算法,值中存的也是Key),以及集成決策樹等模型,在分布式場景下是順理成章完成的,而R則會像一個跟班,很難找到它的應用場景。一樣具有較高編碼效率的Python可以更加靈活、優美(縮進的意義上)的繼承mrjob類完成相應功能,在數據嘗試性探索這一步,matplotlib產出報告恐怕是不如R+knitr+ggplot2更能取悅老板,但一旦需要階段性的測試,Python這種膠水語言或者一步到位的使用Java開發顯得更接地氣,更容易落地。(關于落地性,再小小吐槽一下R在Windows和Linux兩個平臺下能夠使用的包范圍是不同的,尤其是使用Rcpp或者并行包的時候。Python和Java則不常見到這種問題)
R+Hadoop的幻覺:
不管什么和Hadoop結合,都喜歡以word count這種典型的鍵值對開始。事實上R可以做這件事,但是覺得R做的無與倫比,就有點進入誤區。還是那句R的美在于結構化數據下無與倫比的單位代碼產出量。一旦你發現你作為專注于數據的分析師,同時也是一個并不骨灰的代碼開發者,開始用R操作列表和數據結構,開始用R重寫Mapper和Reducer,你就會產生一個疑問:
為嘛不學Java、Python?這種分析“不傳統”,就算你不想學吧,為嘛不找懂它們的人來干?
Python基于鍵值對存儲,也具有相當高的單位代碼產出量,也有很多科學計算包。從這個意義上你可以做出一個白箱,單機縮水版的mahout,而且適合處理有增量算法的大數據學習(看看NumPy,SciPy,)。一樣免費。
數據挖掘的幻覺:
數據挖掘是什么,很難嗎?
廣義的數據挖掘,包括數據分析和機器學習,只說最核心的數學概念的話,估計就幾句話;恰好R的簡潔性也是能用幾句話做完這幾句話的:
0 數據清洗,標準化。和1-4,理解真實世界是相輔相成的
1 最先學的數學技巧是空間分解:LL’,PCA,SVD,一般回歸以及L2/L0懲罰變種;從信息論角度講信息流壓縮(有名如LZ及變種LZO);SVM用到的RBF也算基提取技巧。
2 再學最優化算法:L1懲罰回歸,SVM(使用的Newton-Raphson/Gauss-Newton/Levenberg-Marquadt(還是1的內容?。?;MonteCarlo Markov Chain
3 數據結構:決策樹(列表類),詞頻統計(鍵值對或者字典類),FP-growth(一個樹的加強版)。學到這,所謂“貝葉斯”根本就不能叫算法,只能叫一個無處不在的指導思想。
4 模型集成:Adaboost,神經網絡,bootstrap。集成時,權重技巧和懲罰技巧我的理解是不可割裂。但這個思想對方法,對模型參數都能集成,大雜燴。1個超級精妙的模型不如200個良好理解了問題性質的土鱉模型更實用。
任何一個聽起來很裝逼的算法,逃不過被解析成這4類方法組合的命運。參數調優這種不提綱挈領的問題,確實需要結合時間成本人力成本看(研究者,學生,碼農的成本和投入量完全不一樣)
可以看到,大數據分析的瓶頸在哪?
第0步,和曾經的大Boss討論過,傳統行業數據倉庫實施起碼還能打10年,而”實體-關系”概念和”鍵-值”概念這兩種抽象起碼還能打30年,數據的組織,過濾,元數據維護都是數據產生價值的必經之路,這方面的工作很枯燥但是很基礎,大數據和傳統數據都需要;
第1步是最基本最重要的分析手段,也最容易在大數據語境下導致單機無法分析的億階稀疏大矩陣產生:例1,用戶User對商品SKU的購買記錄;例2,在特定的經緯度,特定的時間,特定的用戶發生了動作;這兩個例子是典型的“查詢簡單分析難,匯總還不如不匯總”的情況,必須要有分布式稀疏矩陣處理技術;
第2步,序貫MCMC的串行性可以通過并行集成方法模擬,但是收斂性還仍然較低,需要暴力并行堆FLOPS;對應的,因為SVM/Lasso都有增量算法、分布式算法方案,核心思想在于“世界的真實,模型的本質,都是稀疏的”,鎖少量資源,分布式地更新模型系數或者是梯度,這些算法在理論上得到突破后,往往依賴分析型數據庫或者大數據平臺靈活的并發調度,靈活的行列混合存儲模式,這一點是單機、小集群、傳統數據庫難以企及的;
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
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