1. 程式人生 > >學習大資料,我不會數學怎麼辦?還要不要學啦?

學習大資料,我不會數學怎麼辦?還要不要學啦?

由於工作關係,在我的周圍存在這兩類人,一是正在學校學習的大學生,二是在IT公司從事研發設計的工程師。他們在數學學習和應用方面出現了兩個極端。在校大學生,特別是大一、大二的學生每學期都有一些諸如數學分析、線性代數、數論之類數學課程,儘管在課堂上可以聽到萊布尼茨和牛頓的糾葛故事、笛卡爾的愛情故事,但是他們往往感到很迷茫,因為不知道所學的數學知識到底有什麼用。對於IT公司的研發人員來說,他們在進入大資料相關崗位前,總是覺得要先學點數學,但是茫茫的數學世界,哪裡才是大資料技術的盡頭?

       

一談到大資料技術,很多人首先想到的是數學,大概是因為數字在數學體系中穩固的位置吧,這也是理所當然的。本文對大資料技術的數學基礎這個問題進行一些探討。

很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系。

我們知道數學的三大分支,即代數、幾何與分析,每個分支隨著研究的發展延伸出來很多小分支。在這個數學體系中,與大資料技術有密切關係的數學基礎主要有以下幾類。特別需要說明的是,由於涉及到的數學知識方法較多,這些數學方法的具體應用可以參閱我的《網際網路大資料處理技術與應用》一書中關於模型、演算法、隱私保護等章節。這裡只是做個總體概述,可以有個總體瞭解。

      

(1)概率論與數理統計

       

這部分與大資料技術開發的關係非常密切,條件概率、獨立性等基本概念、隨機變數及其分佈、多維隨機變數及其分佈、方差分析及迴歸分析、隨機過程(特別是Markov)、引數估計、Bayes理論等在大資料建模、挖掘中就很重要。大資料具有天然的高維特徵,在高維空間中進行資料模型的設計分析就需要一定的多維隨機變數及其分佈方面的基礎。Bayes定理更是分類器構建的基礎之一。除了這些這些基礎知識外,條件隨機場CRF、隱Markov模型、n-gram等在大資料分析中可用於對詞彙、文字的分析,可以用於構建預測分類模型。

    

當然以概率論為基礎的資訊理論在大資料分析中也有一定作用,比如資訊增益、互資訊等用於特徵分析的方法都是資訊理論裡面的概念。

 

(2)線性代數

       

這部分的數學知識與大資料技術開發的關係也很密切,矩陣、轉置、秩 分塊矩陣、向量、正交矩陣、向量空間、特徵值與特徵向量等在大資料建模、分析中也是常用的技術手段。

       

在網際網路大資料中,許多應用場景的分析物件都可以抽象成為矩陣表示,大量Web頁面及其關係、微博使用者及其關係、文字集中文字與詞彙的關係等等都可以用矩陣表示。比如對於Web頁面及其關係用矩陣表示時,矩陣元素就代表了頁面a與另一個頁面b的關係,這種關係可以是指向關係,1表示a和b之間有超連結,0表示a,b之間沒有超連結。著名的PageRank演算法就是基於這種矩陣進行頁面重要性的量化,並證明其收斂性。

       

以矩陣為基礎的各種運算,如矩陣分解則是分析物件特徵提取的途徑,因為矩陣代表了某種變換或對映,因此分解後得到的矩陣就代表了分析物件在新空間中的一些新特徵。所以,奇異值分解SVD、PCA、NMF、MF等在大資料分析中的應用是很廣泛的。

 

(3)最優化方法

        

模型學習訓練是很多分析挖掘模型用於求解引數的途徑,基本問題是:給定一個函式f:A→R,尋找一個元素a0∈A,使得對於所有A中的a,f(a0)≤f(a)(最小化);或者f(a0)≥f(a)(最大化)。優化方法取決於函式的形式,從目前看,最優化方法通常是基於微分、導數的方法,例如梯度下降、爬山法、最小二乘法、共軛分佈法等。

 

(4)離散數學

        

離散數學的重要性就不言而喻了,它是所有電腦科學分支的基礎,自然也是大資料技術的重要基礎。這裡就不展開了。

 

最後,需要提的是,很多人認為自己數學不好,大資料技術開發應用也做不好,其實不然。要想清楚自己在大資料開發應用中充當什麼角色(關於當前大資料技術的崗位現狀,可以關注微信公眾號IntBigData,閱讀“當前的大資料職位及其關係”一文)。參考以下的大資料技術研究應用的切入點,上述數學知識主要體現在資料探勘與模型層上,這些數學知識和方法就需要掌握了。

 

 

 

當然其他層次上,使用這些數學方法對於改進演算法也是非常有意義的,例如在資料獲取層,可以利用概率模型估計爬蟲採集頁面的價值,從而能做出更好的判斷。在大資料計算與儲存層,利用矩陣分塊計算實現平行計算。在“一文通俗理解大資料分析演算法的並行化”(關注微信公眾號IntBigData,檢視歷史推送文章)一文中,我也解釋了矩陣分塊在解決大規模資料計算複雜度時的作用。

       

如果是其他層次上的大資料技術研發,並不需要太多的數學方法,只要會碼就可以了。