大數據機器學習的方法

大數據機器學習的方法

1迴歸算法

  在大部分機器學習課程中,迴歸算法都是介紹的第一個算法。原因有兩個:一.迴歸算法比較簡單,介紹它可以讓人平滑地從統計學遷移到機器學習中。二.迴歸算法是後面若干強大算法的基石,如果不理解迴歸算法,無法學習那些強大的算法。迴歸算法有兩個重要的子類:即線性迴歸和邏輯迴歸。

  線性迴歸就是如何擬合出一條直線最佳匹配我所有的數據。

  計算機科學界專門有一個學科叫“數值計算”,專門用來提升計算機進行各類計算時的準確性和效率問題。例如,著名的“梯度下降”以及“牛頓法”就是數值計算中的經典算法,也非常適合來處理求解函數極值的問題。梯度下降法是解決迴歸模型中最簡單且有效的方法之一。從嚴格意義上來說,由於後文中的神經網絡和推薦算法中都有線性迴歸的因子,因此梯度下降法在後面的算法實現中也有應用。

  邏輯迴歸是一種與線性迴歸非常類似的算法,但是,從本質上講,線型迴歸處理的問題類型與邏輯迴歸不一致。

線性迴歸處理的是數值問題,也就是最後預測出的結果是數字,例如房價。而邏輯迴歸屬於分類算法,也就是說,邏輯迴歸預測結果是離散的分類,例如判斷這封郵件是否是垃圾郵件,以及用戶是否會點擊此廣告等等。

邏輯迴歸是畫出了一條分類線,見下圖。

大數據機器學習的方法

邏輯迴歸的直觀解釋

假設我們有一組腫瘤患者的數據,這些患者的腫瘤中有些是良性的(圖中的藍色點),有些是惡性的(圖中的紅色點)。這裡腫瘤的紅藍色可以被稱作數據的“標籤”。同時每個數據包括兩個“特徵”:患者的年齡與腫瘤的大小。我們將這兩個特徵與標籤映射到這個二維空間上,形成了我上圖的數據。

當我有一個綠色的點時,我該判斷這個腫瘤是惡性的還是良性的呢?根據紅藍點我們訓練出了一個邏輯迴歸模型,也就是圖中的分類線。這時,根據綠點出現在分類線的左側,因此我們判斷它的標籤應該是紅色,也就是說屬於惡性腫瘤。

邏輯迴歸算法劃出的分類線基本都是線性的(也有劃出非線性分類線的邏輯迴歸,不過那樣的模型在處理數據量較大的時候效率會很低),這意味著當兩類之間的界線不是線性時,邏輯迴歸的表達能力就不足。

2神經網絡

神經網絡(也稱之為人工神經網絡,ANN)算法是80年代機器學習界非常流行的算法,不過在90年代中途衰落。

現在,攜著“深度學習”之勢,神經網絡重裝歸來,重新成為最強大的機器學習算法之一。

神經網絡的誕生起源於對大腦工作機理的研究。早期生物界學者們使用神經網絡來模擬大腦。機器學習的學者們使用神經網絡進行機器學習的實驗,發現在視覺與語音的識別上效果都相當好。在BP算法(加速神經網絡訓練過程的數值算法)誕生以後,神經網絡的發展進入了一個熱潮。

比方說,一個正方形,分解為四個折線進入視覺處理的下一層中。四個神經元分別處理一個折線。每個折線再繼續被分解為兩條直線,每條直線再被分解為黑白兩個面。於是,一個複雜的圖像變成了大量的細節進入神經元,神經元處理以後再進行整合,最後得出了看到的是正方形的結論。這就是大腦視覺識別的機理,也是神經網絡工作的機理。

讓我們看一個簡單的神經網絡的邏輯架構。在這個網絡中,分成輸入層,隱藏層,和輸出層。輸入層負責接收信號,隱藏層負責對數據的分解與處理,最後的結果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經元,若干個處理單元組成了一個層,若干個層再組成了一個網絡,也就是"神經網絡"。

大數據機器學習的方法

神經網絡的邏輯架構

進入90年代,神經網絡的發展進入了一個瓶頸期。其主要原因是儘管有BP算法的加速,神經網絡的訓練過程仍然很困難。因此90年代後期支持向量機(SVM)算法取代了神經網絡的地位。

3SVM(支持向量機)

支持向量機算法是誕生於統計學習界,同時在機器學習界大放光彩的經典算法。

支持向量機算法從某種意義上來說是邏輯迴歸算法的強化:通過給予邏輯迴歸算法更嚴格的優化條件,支持向量機算法可以獲得比邏輯迴歸更好的分類界線。但是如果沒有某類函數技術,則支持向量機算法最多算是一種更好的線性分類技術。

但是,通過跟高斯“核”的結合,支持向量機可以表達出非常複雜的分類界線,從而達成很好的的分類效果。“核”事實上就是一種特殊的函數,最典型的特徵就是可以將低維的空間映射到高維的空間。

例如下圖所示:

大數據機器學習的方法

支持向量機圖例

我們如何在二維平面劃分出一個圓形的分類界線?在二維平面可能會很困難,但是通過“核”可以將二維空間映射到三維空間,然後使用一個線性平面就可以達成類似效果。也就是說,二維平面劃分出的非線性分類界線可以等價於三維平面的線性分類界線。於是,我們可以通過在三維空間中進行簡單的線性劃分就可以達到在二維平面中的非線性劃分效果。

大數據機器學習的方法

三維空間的切割

支持向量機是一種數學成分很濃的機器學習算法(相對的,神經網絡則有生物科學成分)。在算法的核心步驟中,有一步證明,即將數據從低維映射到高維不會帶來最後計算複雜性的提升。於是,通過支持向量機算法,既可以保持計算效率,又可以獲得非常好的分類效果。因此支持向量機在90年代後期一直佔據著機器學習中最核心的地位,基本取代了神經網絡算法。直到現在神經網絡藉著深度學習重新興起,兩者之間才又發生了微妙的平衡轉變。

4聚類算法

前面的算法中的一個顯著特徵就是我的訓練數據中包含了標籤,訓練出的模型可以對其他未知數據預測標籤。在下面的算法中,訓練數據都是不含標籤的,而算法的目的則是通過訓練,推測出這些數據的標籤。這類算法有一個統稱,即無監督算法(前面有標籤的數據的算法則是有監督算法)。無監督算法中最典型的代表就是聚類算法。

讓我們還是拿一個二維的數據來說,某一個數據包含兩個特徵。我希望通過聚類算法,給他們中不同的種類打上標籤,我該怎麼做呢?簡單來說,聚類算法就是計算種群中的距離,根據距離的遠近將數據劃分為多個族群。

聚類算法中最典型的代表就是K-Means算法。

5降維算法

降維算法也是一種無監督學習算法,其主要特徵是將數據從高維降低到低維層次。在這裡,維度其實表示的是數據的特徵量的大小,例如,房價包含房子的長、寬、面積與房間數量四個特徵,也就是維度為4維的數據。可以看出來,長與寬事實上與面積表示的信息重疊了,例如面積=長 × 寬。通過降維算法我們就可以去除冗餘信息,將特徵減少為面積與房間數量兩個特徵,即從4維的數據壓縮到2維。於是我們將數據從高維降低到低維,不僅利於表示,同時在計算上也能帶來加速。

剛才說的降維過程中減少的維度屬於肉眼可視的層次,同時壓縮也不會帶來信息的損失(因為信息冗餘了)。如果肉眼不可視,或者沒有冗餘的特徵,降維算法也能工作,不過這樣會帶來一些信息的損失。但是,降維算法可以從數學上證明,從高維壓縮到的低維中最大程度地保留了數據的信息。因此,使用降維算法仍然有很多的好處。

降維算法的主要作用是壓縮數據與提升機器學習其他算法的效率

。通過降維算法,可以將具有幾千個特徵的數據壓縮至若干個特徵。另外,降維算法的另一個好處是數據的可視化,例如將5維的數據壓縮至2維,然後可以用二維平面來可視。降維算法的主要代表是PCA算法(即主成分分析算法)。

6推薦算法

推薦算法是目前業界非常火的一種算法,在電商界,如亞馬遜,天貓,京東等得到了廣泛的運用。推薦算法的主要特徵就是可以自動向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。推薦算法有兩個主要的類別:

一類是基於物品內容的推薦,是將與用戶購買的內容近似的物品推薦給用戶,這樣的前提是每個物品都得有若干個標籤,因此才可以找出與用戶購買物品類似的物品,這樣推薦的好處是關聯程度較大,但是由於每個物品都需要貼標籤,因此工作量較大。

另一類是基於用戶相似度的推薦,則是將與目標用戶興趣相同的其他用戶購買的東西推薦給目標用戶,例如小A歷史上買了物品B和C,經過算法分析,發現另一個與小A近似的用戶小D購買了物品E,於是將物品E推薦給小A。

兩類推薦都有各自的優缺點,在一般的電商應用中,一般是兩類混合使用。推薦算法中最有名的算法就是協同過濾算法。

7其他

除了以上算法之外,機器學習界還有其他的如高斯判別,樸素貝葉斯,決策樹等等算法。但是上面列的六個算法是使用最多,影響最廣,種類最全的典型。機器學習界的一個特色就是算法眾多,發展百花齊放。

下面做一個總結,按照訓練的數據有無標籤,可以將上面算法分為監督學習算法和無監督學習算法,但推薦算法較為特殊,既不屬於監督學習,也不屬於非監督學習,是單獨的一類。

監督學習算法:

  線性迴歸,邏輯迴歸,神經網絡,SVM

無監督學習算法:

聚類算法,降維算法

特殊算法:

推薦算法

除了這些算法以外,有一些算法的名字在機器學習領域中也經常出現。但他們本身並不算是一個機器學習算法,而是為了解決某個子問題而誕生的。你可以理解他們為以上算法的子算法,用於大幅度提高訓練過程。其中的代表有:梯度下降法,主要運用在線型迴歸,邏輯迴歸,神經網絡,推薦算法中;牛頓法,主要運用在線型迴歸中;BP算法,主要運用在神經網絡中;SMO算法,主要運用在SVM中。

大數據機器學習的方法


分享到:


相關文章: