大數據工程師需要精通演算法嗎,要達到一個什麼程度呢?


機器學習是人工智慧的一個重要分支,而機器學習下最重要的就是演算法,本文講述歸納了入門級的幾個機器學習演算法,關注基數智能微信公眾號jishu2017ai,一起加入AI技術大本營。

1、監督學習演算法

這個演算法由一個目標變數或結果變數(或因變數)組成。這些變數由已知的一系列預示變數(自變數)預測而來。利用這一系列變數,我們生成一個將輸入值映射到期望輸出值的函數。這個訓練過程會一直持續,直到模型在訓練數據上獲得期望的精確度。監督式學習的例子有:回歸、決策樹、隨機森林、K – 近鄰演算法、邏輯回歸等。

1)線性回歸

通常用於根據連續變數估計實際數值。我們通過擬合最佳直線來建立自變數和因變數的關係。這條最佳直線叫做回歸線,並且用 Y= a *X + b 這條線性等式來表示。

2)Logistic回歸

這是一個分類演算法而不是一個回歸演算法。該演算法可根據已知的一系列因變數估計離散數值(比方說二進位數值 0 或 1 ,是或否,真或假)。簡單來說,它通過將數據擬合進一個邏輯函數來預估一個事件出現的概率。因此,它也被叫做邏輯回歸。因為它預估的是概率,所以它的輸出值大小在 0 和 1 之間。

3)分類和決策樹(CART)

這個監督式學習演算法通常被用於分類問題。令人驚奇的是,它同時適用於分類變數和連續因變數。在這個演算法中,我們將總體分成兩個或更多的同類群。這是根據最重要的屬性或者自變數來分成儘可能不同的組別。

4)樸素貝葉斯法

用更簡單的話來說,一個樸素貝葉斯分類器假設一個分類的特性與該分類的其它特性不相關。舉個例子,如果一個水果又圓又紅,並且直徑大約是 3 英寸,那麼這個水果可能會是蘋果。即便這些特性互相依賴,或者依賴於別的特性的存在,樸素貝葉斯分類器還是會假設這些特性分別獨立地暗示這個水果是個蘋果。

5)KNN

該演算法可用於分類問題和回歸問題。然而,在業界內,K – 最近鄰演算法更常用於分類問題。K – 最近鄰演算法是一個簡單的演算法。它儲存所有的案例,通過周圍k個案例中的大多數情況劃分新的案例。根據一個距離函數,新案例會被分配到它的 K 個近鄰中最普遍的類別中去。

2、非監督學習演算法

在這個演算法中,沒有任何目標變數或結果變數要預測或估計。這個演算法用在不同的組內聚類分析。這種分析方式被廣泛地用來細分客戶,根據干預的方式分為不同的用戶組。非監督式學習的例子有:關聯演算法和 K – 均值演算法。

1)Apriori 演算法

Apriori演算法是一種用於關聯規則挖掘(Association rule mining)的代表性演算法,它同樣位居十大數據挖掘演算法之列。關聯規則挖掘是數據挖掘中的一個非常重要的研究方向,也是一個由來已久的話題,它的主要任務就是設法發現事物之間的內在聯繫。

2)K-均值聚類

使用 K – 均值演算法來將一個數據歸入一定數量的集群(假設有 k 個集群)的過程是簡單的。一個集群內的數據點是均勻齊次的,並且異於別的集群。

3)主成分分析(PCA)

主成分分析(Principal Component Analysis,PCA), 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。

3、集成學習演算法

這個演算法訓練機器進行決策。它是這樣工作的:機器被放在一個能讓它通過反覆試錯來訓練自己的環境中。機器從過去的經驗中進行學習,並且嘗試利用了解最透徹的知識作出精確的商業判斷。 強化學習的例子有馬爾可夫決策過程。

1)Bagging 隨機森林

在隨機森林演算法中,我們有一系列的決策樹(因此又名「森林」)。為了根據一個新對象的屬性將其分類,每一個決策樹有一個分類,稱之為這個決策樹「投票」給該分類。這個森林選擇獲得森林裡(在所有樹中)獲得票數最多的分類。

2)AdaBoost 提升

當我們要處理很多數據來做一個有高預測能力的預測時,我們會用到 GBM 和 AdaBoost 這兩種 boosting 演算法。boosting 演算法是一種集成學習演算法。它結合了建立在多個基礎估計值基礎上的預測結果,來增進單個估計值的可靠程度。這些 boosting 演算法通常在數據科學比賽如 Kaggl、AV Hackathon、CrowdAnalytix 中很有效。


謝邀~

說明一下,全棧(Full stack )和大數據這兩個內容請不要糅合在一起!全棧指的是java web從前台頁面,包括摳圖,切圖再到後台程序編寫,資料庫,系統環境搭建這一系列!

大數據是專註於對大量數據,幾百或上千個G這樣的數據進行處理,歸納,統計和分析!且每次處理的數據都是幾百或上千萬條,集中在資料庫層面,例如Hadoop 技術。

大數據雖然可以說屬於資料庫層面,但一般人要精通全棧再精通大數據,是學不完的,精力不夠!大數據只是數據層面的一個大的擴展,但不應該歸為全棧當中去!

大數據肯定需要演算法的,然而作為小白,建議題主先打好基礎!大數據也需要編程基礎的,像java,Scala 這些需要基礎也是要有的!建議題主不要那麼快去想著演算法,因為對於小白來說,個人覺得還為時過早!

感謝閱讀!










這是《白話大數據與機器學習》1.3.2節內容,希望有用!


這與大數據工程師將來的職業定位很有關係,如果僅僅只是完成工作,可以說目前很多的庫能夠解決問題,大數據工程師只需要調用庫來解決問題,而不需要太多理解演算法庫怎麼實現;而如果是對自己有要求,希望將來能成為full stack,那不論對於哪個方面的工程師,都需要去熟悉演算法背後的邏輯和實現,最好是自己能夠完成演算法的編寫,這對於以後的發展很有好處


推薦閱讀:

大數據能不能幫助中醫走出目前的困境?
貓眼為什麼要做票房分析app?
口袋妖怪go(Pokemon go)目的是否不純?是否存在安全信息問題?
個人或非官方氣象機構發布自行搜集的氣象數據、信息、預報和預警是否違法?
與 Hadoop 對比,如何看待 Spark 技術?

TAG:大數據 | 演算法 | 科技 | 工程師 |