十大經典的機器學習演算法

2021-10-09 18:03:33 字數 4199 閱讀 6297

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

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

**十大經典的機器學習演算法

圖1 智慧型手機上的相關應用

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

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

**十大經典的機器學習演算法

圖2 決策樹原理示意圖

隨機森林

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

**十大經典的機器學習演算法

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

s矩陣是源資料,有1-n條資料,a、b、c 是feature,最後一列c是類別:

**十大經典的機器學習演算法

由s隨機生成m個子矩陣:

**十大經典的機器學習演算法

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

**十大經典的機器學習演算法

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

邏輯回歸

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

**十大經典的機器學習演算法

圖4-1 線性模型圖

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

**十大經典的機器學習演算法

圖4-2

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

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

**十大經典的機器學習演算法

圖4-3

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

**十大經典的機器學習演算法

圖4-4

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

**十大經典的機器學習演算法

圖4-5

**十大經典的機器學習演算法

圖4-6 lr模型曲線圖

支援向量機

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

**十大經典的機器學習演算法

圖5 分類問題示意圖

**十大經典的機器學習演算法

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

**十大經典的機器學習演算法

所以得到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。

樸素貝葉斯

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

**十大經典的機器學習演算法

圖6-1 問題案例

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

**十大經典的機器學習演算法

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

**十大經典的機器學習演算法

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

**十大經典的機器學習演算法

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

**十大經典的機器學習演算法

圖6-2 nb演算法結果展示圖

k近鄰演算法

給乙個新的資料時,離它最近的 k 個點中,哪個類別多,這個資料就屬於哪一類。

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

**十大經典的機器學習演算法

圖7-1 問題案例

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

**十大經典的機器學習演算法

圖7-2 演算法步驟展示圖

k均值演算法

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

**十大經典的機器學習演算法

圖8-1 問題案例

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

**十大經典的機器學習演算法

圖8-2

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

**十大經典的機器學習演算法

**十大經典的機器學習演算法

圖8-3 演算法結果展示

adaboost

adaboost 是 boosting 的方法之一。boosting就是把若干個分類效果並不好的分類器綜合起來考慮,會得到乙個效果比較好的分類器。

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

**十大經典的機器學習演算法

圖9-1 演算法原理展示

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

**十大經典的機器學習演算法

圖9-2

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

**十大經典的機器學習演算法

圖9-3

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

**十大經典的機器學習演算法

圖9-4

神經網路

neural networks適合乙個input可能落入至少兩個類別裡:nn由若干層神經元,和它們之間的聯絡組成。 第一層是input層,最後一層是output層。在hidden層和output層都有自己的classifier。

**十大經典的機器學習演算法

圖10-1 神經網路結構

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

**十大經典的機器學習演算法

圖10-2 演算法結果展示

馬爾科夫

markov chains由state(狀態)和transitions**移)組成。例子,根據這一句話 『the quick brown fox jumps over the lazy dog』,要得到markov chains。

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

**十大經典的機器學習演算法

圖11-1 馬爾科夫原理圖

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

**十大經典的機器學習演算法

圖11-2 演算法結果展示

上述十大類機器學習演算法是人工智慧發展的踐行者,即使在當下,依然在資料探勘以及小樣本的人工智慧問題中被廣泛使用。

機器學習十大經典演算法之線性回歸

線性回歸可以用以下式子進行描述 線性回歸即連續值的 問題,即根據給定的x以及模型引數 的計算下,使得該方程的相應能夠無限逼近真實值y。下面來舉乙個連續值 的簡單例子 y w x b 當知道兩組引數時,即可通過消元法求得引數w與b,即可得到該方程的精確解。即w 1.477,b 0.089 1.567 ...

十大經典排序演算法

載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...

十大經典排序演算法

不穩定排序種類為4種 快速排序 核心思想是partition操作 二分法分而治之 平均時間複雜度nlogn 希爾排序 高階版的插入排序,先把間隔較遠的子串行排序,最後間隔為1時,等同於插入排序 插入排序在序列有序時,時間複雜度常數級,所以先讓子串行總體有序,能有效降低時間複雜度 平均時間複雜度n 1...