輕松看懂機(jī)器學(xué)習(xí)十大常用算法

通過(guò)本篇文章可以對(duì)ML的常用算法有個(gè)常識(shí)性的認(rèn)識(shí),沒(méi)有代碼,沒(méi)有復(fù)雜的理論推導(dǎo),就是圖解一下,知道這些算法是什么,它們是怎么應(yīng)用的,例子主要是分類(lèi)問(wèn)題。

每個(gè)算法都看了好幾個(gè)視頻,挑出講的最清晰明了有趣的,便于科普。
以后有時(shí)間再對(duì)單個(gè)算法做深入地解析。

今天的算法如下:

  1. 決策樹(shù)
  1. 隨機(jī)森林算法
  2. 邏輯回歸
  3. SVM
  4. 樸素貝葉斯
  5. K最近鄰算法
  6. K均值算法
  7. Adaboost 算法
  8. 神經(jīng)網(wǎng)絡(luò)
  9. 馬爾可夫

1. 決策樹(shù)

根據(jù)一些 feature 進(jìn)行分類(lèi),每個(gè)節(jié)點(diǎn)提一個(gè)問(wèn)題,通過(guò)判斷,將數(shù)據(jù)分為兩類(lèi),再繼續(xù)提問(wèn)。這些問(wèn)題是根據(jù)已有數(shù)據(jù)學(xué)習(xí)出來(lái)的,再投入新數(shù)據(jù)的時(shí)候,就可以根據(jù)這棵樹(shù)上的問(wèn)題,將數(shù)據(jù)劃分到合適的葉子上。

2. 隨機(jī)森林

視頻

在源數(shù)據(jù)中隨機(jī)選取數(shù)據(jù),組成幾個(gè)子集

S 矩陣是源數(shù)據(jù),有 1-N 條數(shù)據(jù),A B C 是feature,最后一列C是類(lèi)別

由 S 隨機(jī)生成 M 個(gè)子矩陣

這 M 個(gè)子集得到 M 個(gè)決策樹(shù)
將新數(shù)據(jù)投入到這 M 個(gè)樹(shù)中,得到 M 個(gè)分類(lèi)結(jié)果,計(jì)數(shù)看預(yù)測(cè)成哪一類(lèi)的數(shù)目最多,就將此類(lèi)別作為最后的預(yù)測(cè)結(jié)果

3. 邏輯回歸

視頻

當(dāng)預(yù)測(cè)目標(biāo)是概率這樣的,值域需要滿足大于等于0,小于等于1的,這個(gè)時(shí)候單純的線性模型是做不到的,因?yàn)樵诙x域不在某個(gè)范圍之內(nèi)時(shí),值域也超出了規(guī)定區(qū)間。

所以此時(shí)需要這樣的形狀的模型會(huì)比較好

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

這個(gè)模型需要滿足兩個(gè)條件 大于等于0,小于等于1
大于等于0 的模型可以選擇 絕對(duì)值,平方值,這里用 指數(shù)函數(shù),一定大于0
小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了

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

通過(guò)源數(shù)據(jù)計(jì)算可以得到相應(yīng)的系數(shù)了

最后得到 logistic 的圖形

4. SVM

視頻

support vector machine

要將兩類(lèi)分開(kāi),想要得到一個(gè)超平面,最優(yōu)的超平面是到兩類(lèi)的 margin 達(dá)到最大,margin就是超平面與離它最近一點(diǎn)的距離,如下圖,Z2>Z1,所以綠色的超平面比較好

將這個(gè)超平面表示成一個(gè)線性方程,在線上方的一類(lèi),都大于等于1,另一類(lèi)小于等于-1

點(diǎn)到面的距離根據(jù)圖中的公式計(jì)算

所以得到 total margin 的表達(dá)式如下,目標(biāo)是最大化這個(gè) margin,就需要最小化分母,于是變成了一個(gè)優(yōu)化問(wèn)題

舉個(gè)栗子,三個(gè)點(diǎn),找到最優(yōu)的超平面,定義了 weight vector=(2,3)-(1,1)

得到 weight vector 為(a,2a),將兩個(gè)點(diǎn)代入方程,代入(2,3)另其值=1,代入(1,1)另其值=-1,求解出 a 和 截矩 w0 的值,進(jìn)而得到超平面的表達(dá)式。

a 求出來(lái)后,代入(a,2a)得到的就是 support vector

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

5. 樸素貝葉斯

視頻

舉個(gè)在 NLP 的應(yīng)用

給一段文字,返回情感分類(lèi),這段文字的態(tài)度是positive,還是negative

為了解決這個(gè)問(wèn)題,可以只看其中的一些單詞

這段文字,將僅由一些單詞和它們的計(jì)數(shù)代表

原始問(wèn)題是:給你一句話,它屬于哪一類(lèi)
通過(guò) bayes rules 變成一個(gè)比較簡(jiǎn)單容易求得的問(wèn)題

問(wèn)題變成,這一類(lèi)中這句話出現(xiàn)的概率是多少,當(dāng)然,別忘了公式里的另外兩個(gè)概率

栗子:?jiǎn)卧~ love 在 positive 的情況下出現(xiàn)的概率是 0.1,在 negative 的情況下出現(xiàn)的概率是 0.001

6. K最近鄰

視頻

k nearest neighbours

給一個(gè)新的數(shù)據(jù)時(shí),離它最近的 k 個(gè)點(diǎn)中,哪個(gè)類(lèi)別多,這個(gè)數(shù)據(jù)就屬于哪一類(lèi)

栗子:要區(qū)分 貓 和 狗,通過(guò) claws 和 sound 兩個(gè)feature來(lái)判斷的話,圓形和三角形是已知分類(lèi)的了,那么這個(gè) star 代表的是哪一類(lèi)呢

k=3時(shí),這三條線鏈接的點(diǎn)就是最近的三個(gè)點(diǎn),那么圓形多一些,所以這個(gè)star就是屬于貓

7. K均值

視頻

想要將一組數(shù)據(jù),分為三類(lèi),粉色數(shù)值大,黃色數(shù)值小
最開(kāi)心先初始化,這里面選了最簡(jiǎn)單的 3,2,1 作為各類(lèi)的初始值
剩下的數(shù)據(jù)里,每個(gè)都與三個(gè)初始值計(jì)算距離,然后歸類(lèi)到離它最近的初始值所在類(lèi)別

分好類(lèi)后,計(jì)算每一類(lèi)的平均值,作為新一輪的中心點(diǎn)

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

8. Adaboost

視頻

adaboost 是 bosting 的方法之一

bosting就是把若干個(gè)分類(lèi)效果并不好的分類(lèi)器綜合起來(lái)考慮,會(huì)得到一個(gè)效果比較好的分類(lèi)器。

下圖,左右兩個(gè)決策樹(shù),單個(gè)看是效果不怎么好的,但是把同樣的數(shù)據(jù)投入進(jìn)去,把兩個(gè)結(jié)果加起來(lái)考慮,就會(huì)增加可信度

adaboost 的栗子,手寫(xiě)識(shí)別中,在畫(huà)板上可以抓取到很多 features,例如 始點(diǎn)的方向,始點(diǎn)和終點(diǎn)的距離等等

training 的時(shí)候,會(huì)得到每個(gè) feature 的 weight,例如 2 和 3 的開(kāi)頭部分很像,這個(gè) feature 對(duì)分類(lèi)起到的作用很小,它的權(quán)重也就會(huì)較小

而這個(gè) alpha 角 就具有很強(qiáng)的識(shí)別性,這個(gè) feature 的權(quán)重就會(huì)較大,最后的預(yù)測(cè)結(jié)果是綜合考慮這些 feature 的結(jié)果

9. 神經(jīng)網(wǎng)絡(luò)

視頻

Neural Networks 適合一個(gè)input可能落入至少兩個(gè)類(lèi)別里

NN 由若干層神經(jīng)元,和它們之間的聯(lián)系組成
第一層是 input 層,最后一層是 output 層

在 hidden 層 和 output 層都有自己的 classifier

input 輸入到網(wǎng)絡(luò)中,被激活,計(jì)算的分?jǐn)?shù)被傳遞到下一層,激活后面的神經(jīng)層,最后output 層的節(jié)點(diǎn)上的分?jǐn)?shù)代表屬于各類(lèi)的分?jǐn)?shù),下圖例子得到分類(lèi)結(jié)果為 class 1

同樣的 input 被傳輸?shù)讲煌墓?jié)點(diǎn)上,之所以會(huì)得到不同的結(jié)果是因?yàn)楦髯怨?jié)點(diǎn)有不同的weights 和 bias

這也就是 forward propagation

10. 馬爾可夫

視頻

Markov Chains 由 state 和 transitions 組成

栗子,根據(jù)這一句話 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain

步驟,先給每一個(gè)單詞設(shè)定成一個(gè)狀態(tài),然后計(jì)算狀態(tài)間轉(zhuǎn)換的概率

這是一句話計(jì)算出來(lái)的概率,當(dāng)你用大量文本去做統(tǒng)計(jì)的時(shí)候,會(huì)得到更大的狀態(tài)轉(zhuǎn)移矩陣,例如 the 后面可以連接的單詞,及相應(yīng)的概率

生活中,鍵盤(pán)輸入法的備選結(jié)果也是一樣的原理,模型會(huì)更高級(jí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 注:題中所指的『機(jī)器學(xué)習(xí)』不包括『深度學(xué)習(xí)』。本篇文章以理論推導(dǎo)為主,不涉及代碼實(shí)現(xiàn)。 前些日子定下了未來(lái)三年左右...
    我偏笑_NSNirvana閱讀 40,593評(píng)論 12 145
  • 機(jī)器學(xué)習(xí)常用算法總結(jié)如下:決策樹(shù)隨機(jī)森林算法邏輯回歸SVM樸素貝葉斯K最近鄰算法K均值算法Adaboost 算法神...
    珈誼閱讀 571評(píng)論 0 0
  • 機(jī)器學(xué)習(xí)的介紹 機(jī)器學(xué)習(xí)無(wú)疑是當(dāng)前數(shù)據(jù)分析領(lǐng)域的一個(gè)熱點(diǎn)內(nèi)容。很多人在平時(shí)的工作中都或多或少會(huì)用到機(jī)器學(xué)習(xí)的算...
    寂靜臺(tái)風(fēng)閱讀 1,719評(píng)論 0 29
  • 我從小性格頑劣,用那時(shí)大人們的話來(lái)說(shuō),我“不合群”且乖戾,因此被送入某個(gè)以“軍事化管理”著稱(chēng)的環(huán)境,被迫接受集體生...
    593c0c291059閱讀 293評(píng)論 0 0
  • 畫(huà)一顆流星 我祈愿 山谷的天空 沒(méi)有禿鷲 在盤(pán)旋 硝煙彌漫 不是某處 蓄謀的狂歡 在流星下 我祈愿 不同的信仰 是...
    何事亂翻書(shū)閱讀 141評(píng)論 1 2

友情鏈接更多精彩內(nèi)容