tft每日頭條

 > 生活

 > 機器學習推薦算法詳細講解

機器學習推薦算法詳細講解

生活 更新时间:2024-10-20 10:45:36

弱人工智能近幾年取得了重大突破,悄然間,已經成為每個人生活中必不可少的一部分。以我們的智能手機為例,看看到底溫藏着多少人工智能的神奇魔術。

下圖是一部典型的智能手機上安裝的一些常見應用程序,可能很多人都猜不到,人工智能技術已經是手機上很多應用程序的核心驅動力。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)1

                  圖1 智能手機上的相關應用

  傳統的機器學習算法包括決策樹、聚類、貝葉斯分類、支持向量機、EM、Adaboost等等。這篇文章将對常用算法做常識性的介紹,沒有代碼,也沒有複雜的理論推導,就是圖解一下,知道這些算法是什麼,它們是怎麼應用的。

決策樹

  根據一些 feature(特征) 進行分類,每個節點提一個問題,通過判斷,将數據分為兩類,再繼續提問。這些問題是根據已有數據學習出來的,再投入新數據的時候,就可以根據這棵樹上的問題,将數據劃分到合适的葉子上。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)2

                圖2 決策樹原理示意圖

随機森林

  在源數據中随機選取數據,組成幾個子集:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)3

      圖3-1 随機森林原理示意圖

  S矩陣是源數據,有1-N條數據,A、B、C 是feature,最後一列C是類别:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)4

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)5

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)6

              圖3-2 随機森林效果展示圖

邏輯回歸

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)7

                  圖4-1 線性模型圖

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)8

        圖4-2 改進的線性模型圖

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

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)9

              圖4-3 步驟流程圖

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)10

            圖4-4 logistic regressions 模型流程圖

  通過源數據計算可以得到相應的系數了:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)11

                  圖4-5 系數計算圖

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)12

                  圖4-6 LR模型曲線圖

支持向量機

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)13

            圖5 分類問題示意圖

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)14

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)15

  所以得到total margin的表達式如下,目标是最大化這個margin,就需要最小化分母,于是變成了一個優化問題:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)16

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)17

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)18

  a求出來後,代入(a,2a)得到的就是support vector,a和w0代入超平面的方程就是support vector machine。

樸素貝葉斯

  舉個在 NLP 的應用:給一段文字,返回情感分類,這段文字的态度是positive,還是negative:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)19

                圖6-1 問題案例

  為了解決這個問題,可以隻看其中的一些單詞:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)20

  這段文字,将僅由一些單詞和它們的計數代表:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)21

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)22

  問題變成,這一類中這句話出現的概率是多少,當然,别忘了公式裡的另外兩個概率。例子:單詞“love”在positive的情況下出現的概率是 0.1,在negative的情況下出現的概率是0.001。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)23

              圖6-2 NB算法結果展示圖

K近鄰算法

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

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)24

                圖7-1 問題案例

  k=3時,這三條線鍊接的點就是最近的三個點,那麼圓形多一些,所以這個star就是屬于貓。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)25

            圖7-2 算法步驟展示圖

K均值算法

  先要将一組數據,分為三類,粉色數值大,黃色數值小 。最開始先初始化,這裡面選了最簡單的 3,2,1 作為各類的初始值 。剩下的數據裡,每個都與三個初始值計算距離,然後歸類到離它最近的初始值所在類别。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)26

                  圖8-1 問題案例

  分好類後,計算每一類的平均值,作為新一輪的中心點:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)27

                    圖8-2

  幾輪之後,分組不再變化了,就可以停止了:

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)28

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)29

            圖8-3 算法結果展示

Adaboost

  Adaboost 是 Boosting 的方法之一。Boosting就是把若幹個分類效果并不好的分類器綜合起來考慮,會得到一個效果比較好的分類器。

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)30

                圖9-1 算法原理展示

  Adaboost 的例子,手寫識别中,在畫闆上可以抓取到很多features(特征),例如始點的方向,始點和終點的距離等等。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)31

            圖9-2

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)32

    圖9-3

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)33

                 圖9-4

神經網絡

  Neural Networks适合一個input可能落入至少兩個類别裡:NN由若幹層神經元,和它們之間的聯系組成。 第一層是input層,最後一層是output層。在hidden層和output層都有自己的classifier。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)34

  圖10-1 神經網絡結構

  input輸入到網絡中,被激活,計算的分數被傳遞到下一層,激活後面的神經層,最後output層的節點上的分數代表屬于各類的分數,下圖例子得到分類結果為class 1;同樣的input被傳輸到不同的節點上,之所以會得到不同的結果是因為各自節點有不同的weights 和bias,這也就是forward propagation。

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)35

    圖10-2 算法結果展示

馬爾科夫

  Markov Chains由state(狀态)和transitions(轉移)組成。例子,根據這一句話 ‘the quick brown fox jumps over the lazy dog’,要得到markov chains。

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)36

              圖11-1 馬爾科夫原理圖

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

機器學習推薦算法詳細講解(圖解十大經典的機器學習算法)37

                    圖11-2 算法結果展示

  上述十大類機器學習算法是人工智能發展的踐行者,即使在當下,依然在數據挖掘以及小樣本的人工智能問題中被廣泛使用。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved