歡迎光臨
每天分享高質量文章

【演演算法】十大必須掌握的機器學習演演算法,竟然都如此有趣

筆者邀請您,先思考:

1 您熟悉那些機器學習演演算法?

2 機器學習演演算法如何應用?

每個演演算法都看了好幾個影片,挑出講的最清晰明瞭有趣的,便於科普。 以後有時間再對單個演演算法做深入地解析。

今天的演演算法如下:

  1. 決策樹

  2. 隨機森林演演算法

  3. 邏輯回歸

  4. SVM

  5. 樸素貝葉斯

  6. K最近鄰演演算法

  7. K均值演演算法

  8. Adaboost演演算法

  9. 神經網路

  10. 馬爾可夫

1.  決策樹

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

2、隨機森林

在源資料中隨機選取資料,組成幾個子集:

S矩陣是源資料,有1-N條資料,A、B、C 是feature,最後一列C是類別:

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

這M個子集得到 M 個決策樹:
將新資料投入到這M個樹中,得到M個分類結果,計數看預測成哪一類的數目最多,就將此類別作為最後的預測結果。

3、邏輯回歸

當預測標的是機率這樣的,值域需要滿足大於等於0,小於等於1的,這個時候單純的線性模型是做不到的,因為在定義域不在某個範圍之內時,值域也超出了規定區間。

所以此時需要這樣的形狀的模型會比較好:

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

這個模型需要滿足兩個條件 “大於等於0”,“小於等於1” 
大於等於0 的模型可以選擇絕對值,平方值,這裡用指數函式,一定大於0;
小於等於1 用除法,分子是自己,分母是自身加上1,那一定是小於1的了。

再做一下變形,就得到了 logistic regressions 模型:

透過源資料計算可以得到相應的繫數了:

最後得到 logistic 的圖形:

4、SVM

要將兩類分開,想要得到一個超平面,最優的超平面是到兩類的 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 個點中,哪個類別多,這個資料就屬於哪一類。

例子:要區分“貓”和“狗”,透過“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 chains。

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

這是一句話計算出來的機率,當你用大量文字去做統計的時候,會得到更大的狀態轉移矩陣,例如the後面可以連線的單詞,及相應的機率。

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

您有什麼見解,請留言。

文章推薦:

1 【應用】從業務資料分析到機器學習應用的一次經歷

加入資料人圈子或者商務合作,請新增筆者微信。

資料人網是資料人學習、交流和分享的平臺http://shujuren.org 。專註於從資料中學習到有用知識。
平臺的理念:人人投稿,知識共享;人人分析,洞見驅動;智慧聚合,普惠人人。
您在資料人網平臺,可以1)學習資料知識;2)建立資料部落格;3)認識資料朋友;4)尋找資料工作;5)找到其它與資料相關的乾貨。
我們努力堅持做原創,聚合和分享優質的省時的資料知識!
我們都是資料人,資料是有價值的,堅定不移地實現從資料到商業價值的轉換!


點選閱讀原文,進入資料人網,獲取資料知識。




公眾號推薦:

鏈達君,專註於分享區塊鏈內容

腳印英語,專註於分享英語口語內容




贊(0)

分享創造快樂

© 2024 知識星球   網站地圖