圖解機器學習十大經常使用算法

經過本篇文章能夠對ML的經常使用算法有個常識性的認識,沒有代碼,沒有複雜的理論推導,就是圖解一下,知道這些算法是什麼,它們是怎麼應用的,例子主要是分類問題。算法

每一個算法都看了好幾個視頻,挑出講的最清晰明瞭有趣的,便於科普。
之後有時間再對單個算法作深刻地解析。網絡

今天的算法以下:函數

  1. 決策樹
  1. 隨機森林算法
  2. 邏輯迴歸
  3. SVM
  4. 樸素貝葉斯
  5. K最近鄰算法
  6. K均值算法
  7. Adaboost 算法
  8. 神經網絡
  9. 馬爾可夫

1. 決策樹

根據一些 feature 進行分類,每一個節點提一個問題,經過判斷,將數據分爲兩類,再繼續提問。這些問題是根據已有數據學習出來的,再投入新數據的時候,就能夠根據這棵樹上的問題,將數據劃分到合適的葉子上。學習

 
 

2. 隨機森林

視頻優化

在源數據中隨機選取數據,組成幾個子集ui

 
 

S 矩陣是源數據,有 1-N 條數據,A B C 是feature,最後一列C是類別3d

 
 

由 S 隨機生成 M 個子矩陣rest

 
 

這 M 個子集獲得 M 個決策樹
將新數據投入到這 M 個樹中,獲得 M 個分類結果,計數看預測成哪一類的數目最多,就將此類別做爲最後的預測結果orm

 
 

3. 邏輯迴歸

視頻 視頻

當預測目標是機率這樣的,值域須要知足大於等於0,小於等於1的,這個時候單純的線性模型是作不到的,由於在定義域不在某個範圍以內時,值域也超出了規定區間。

 
 

因此此時須要這樣的形狀的模型會比較好

 
 

那麼怎麼獲得這樣的模型呢?

這個模型須要知足兩個條件 大於等於0,小於等於1
大於等於0 的模型能夠選擇 絕對值,平方值,這裏用 指數函數,必定大於0
小於等於1 用除法,分子是本身,分母是自身加上1,那必定是小於1的了

 
 

再作一下變形,就獲得了 logistic regression 模型

 
 

經過源數據計算能夠獲得相應的係數了

 
 

最後獲得 logistic 的圖形

 
 

4. SVM

視頻

support vector machine

要將兩類分開,想要獲得一個超平面,最優的超平面是到兩類的 margin 達到最大,margin就是超平面與離它最近一點的距離,以下圖,Z2>Z1,因此綠色的超平面比較好

 
 

將這個超平面表示成一個線性方程,在線上方的一類,都大於等於1,另外一類小於等於-1

 
 

點到面的距離根據圖中的公式計算

 
 

因此獲得 total margin 的表達式以下,目標是最大化這個 margin,就須要最小化分母,因而變成了一個優化問題

 
 

舉個栗子,三個點,找到最優的超平面,定義了 weight vector=(2,3)-(1,1)

 
 

獲得 weight vector 爲(a,2a),將兩個點代入方程,代入(2,3)另其值=1,代入(1,1)另其值=-1,求解出 a 和 截矩 w0 的值,進而獲得超平面的表達式。

 
 

a 求出來後,代入(a,2a)獲得的就是 support vector

a 和 w0 代入超平面的方程就是 support vector machine

5. 樸素貝葉斯

視頻

舉個在 NLP 的應用

給一段文字,返回情感分類,這段文字的態度是positive,仍是negative

 
 

爲了解決這個問題,能夠只看其中的一些單詞

 
 

這段文字,將僅由一些單詞和它們的計數表明

 
 

原始問題是:給你一句話,它屬於哪一類
經過 bayes rules 變成一個比較簡單容易求得的問題

 
 

問題變成,這一類中這句話出現的機率是多少,固然,別忘了公式裏的另外兩個機率

栗子:單詞 love 在 positive 的狀況下出現的機率是 0.1,在 negative 的狀況下出現的機率是 0.001

 
 

6. K最近鄰

視頻

k nearest neighbours

給一個新的數據時,離它最近的 k 個點中,哪一個類別多,這個數據就屬於哪一類

栗子:要區分 貓 和 狗,經過 claws 和 sound 兩個feature來判斷的話,圓形和三角形是已知分類的了,那麼這個 star 表明的是哪一類呢

 
 

k=3時,這三條線連接的點就是最近的三個點,那麼圓形多一些,因此這個star就是屬於貓

 
 

7. K均值

視頻

想要將一組數據,分爲三類,粉色數值大,黃色數值小
最開心先初始化,這裏面選了最簡單的 3,2,1 做爲各種的初始值
剩下的數據裏,每一個都與三個初始值計算距離,而後歸類到離它最近的初始值所在類別

 
 

分好類後,計算每一類的平均值,做爲新一輪的中心點

 
 

幾輪以後,分組再也不變化了,就能夠中止了

 
 
 
 

8. Adaboost

視頻

adaboost 是 bosting 的方法之一

bosting就是把若干個分類效果並很差的分類器綜合起來考慮,會獲得一個效果比較好的分類器。

下圖,左右兩個決策樹,單個看是效果不怎麼好的,可是把一樣的數據投入進去,把兩個結果加起來考慮,就會增長可信度

 
 

adaboost 的栗子,手寫識別中,在畫板上能夠抓取到不少 features,例如 始點的方向,始點和終點的距離等等

 
 

training 的時候,會獲得每一個 feature 的 weight,例如 2 和 3 的開頭部分很像,這個 feature 對分類起到的做用很小,它的權重也就會較小

 
 

而這個 alpha 角 就具備很強的識別性,這個 feature 的權重就會較大,最後的預測結果是綜合考慮這些 feature 的結果

 
 

9. 神經網絡

視頻

Neural Networks 適合一個input可能落入至少兩個類別裏

NN 由若干層神經元,和它們之間的聯繫組成
第一層是 input 層,最後一層是 output 層

在 hidden 層 和 output 層都有本身的 classifier

 
 

input 輸入到網絡中,被激活,計算的分數被傳遞到下一層,激活後面的神經層,最後output 層的節點上的分數表明屬於各種的分數,下圖例子獲得分類結果爲 class 1

一樣的 input 被傳輸到不一樣的節點上,之因此會獲得不一樣的結果是由於各自節點有不一樣的weights 和 bias

這也就是 forward propagation

 
 

10. 馬爾可夫

視頻

Markov Chains 由 state 和 transitions 組成

栗子,根據這一句話 ‘the quick brown fox jumps over the lazy dog’,要獲得 markov chain

步驟,先給每個單詞設定成一個狀態,而後計算狀態間轉換的機率

 
 

這是一句話計算出來的機率,當你用大量文本去作統計的時候,會獲得更大的狀態轉移矩陣,例如 the 後面能夠鏈接的單詞,及相應的機率

 
 

生活中,鍵盤輸入法的備選結果也是同樣的原理,模型會更高級

 


本文摘自: https://www.jianshu.com/p/55a67c12d3e9
相關文章
相關標籤/搜索