大數據是最近兩年提出的,而數據挖掘上世紀就提出來了。我想知道的是,現在大數據的背景下,採用的數據挖掘演算法跟之前傳統的數據挖掘演算法有什麼本質上的不同?


演算法角度去看,沒有本質差別。

工程角度上看是有較大不同。舉例來說,餘弦距離計算商城各物品兩兩間相似度,服務於線上推薦模塊使用。如果商品總量幾千個直接計算就行。倘若商品總量幾千萬,就算演算法邏輯完全相同,實現邏輯也要做成分散式,不然基本算不完。


前者本質上是 大;

後者本質上是 挖;


演算法沒有顯著區別。

只是傳統的一直局限於計算能力(集中式或類集中式的計算),導致像深度學習不能有效施展,而其他演算法又一直在糾結時間和空間複雜度。

現在基於雲計算、分散式和大數據的底層技術,大規模的計算條件滿足,許多演算法的效果也就更快,效果也就更為明顯有效了。


推薦一本書,《零基礎學大數據演算法》,我感覺還行


傳統的模型要經過演算法改進來降低時間和空間複雜度,才能在大規模數據上使用。注意到這點對個人來說比較重要,才能有針對性的學習,學習一個模型不能用toy data來實驗,而應使用gb以上級別數據,自然能注意到區別

我個人覺得這是兩個不同時代的東西,就像功能手機和智能手機有什麼顯著差別?雖然二者的本質都是數據源、數據工具、模型演算法這三要素,但場景完全不一樣,是量級的差異。比如銀行傳統的數據挖掘,基本使用的是交易數據,而現在機器數據和互聯網行為數據也納入進來,數據量和分析的維度複雜的多。還有一個顯著特徵是,傳統數據挖掘傾向找到事物之間的關聯關係,希望挖掘一種共性,而大數據則期望對每一個個體進行精準定位,希望找到每個分析對象的個性。如果非要說沒本質差別,我只能說最底層都是數學。


實際上,大數據用的演算法絕大多數都是幾十年前的老演算法,只是當時的硬體條件不支持這麼大的計算量。而現在硬體和分散式技術上去了,那些老演算法變得實用,所以開始流行。比如現在很火的深度神經網路,演算法都是30年前提出來的了,但直到最近幾年才變得實用。


推薦閱讀:
相关文章