通過本篇文章大家可以對ML的常用算法形成常識性的認識闷祥。沒有代碼,沒有復(fù)雜的理論推導(dǎo)傲诵,僅是圖解凯砍,介紹這些算法是什么以及如何應(yīng)用(例子主要是分類問題)。以后有機會再對單個算法做深入地解析拴竹。
今天的算法如下:
1悟衩、決策樹
2、隨機森林算法
3栓拜、邏輯回歸
4座泳、SVM
5惠昔、樸素貝葉斯
6、K最近鄰算法
7挑势、K均值算法
8镇防、Adaboost 算法
9、神經(jīng)網(wǎng)絡(luò)
10潮饱、馬爾可夫
1. 決策樹
2. 隨機森林
在源數(shù)據(jù)中隨機選取數(shù)據(jù)营罢,組成幾個子集
S 矩陣是源數(shù)據(jù),有 1-N 條數(shù)據(jù)饼齿,A B C 是feature饲漾,最后一列C是類別
由 S 隨機生成 M 個子矩陣
3. 邏輯回歸
所以此時需要這樣的形狀的模型會比較好
再做一下變形,就得到了 logistic regression 模型
通過源數(shù)據(jù)計算可以得到相應(yīng)的系數(shù)了
最后得到 logistic 的圖形
4. SVM
support vector machine
要將兩類分開缕溉,想要得到一個超平面考传,最優(yōu)的超平面是到兩類的 margin 達到最大,margin就是超平面與離它最近一點的距離证鸥,如下圖僚楞,Z2>Z1,所以綠色的超平面比較好
將這個超平面表示成一個線性方程枉层,在線上方的一類泉褐,都大于等于1,另一類小于等于-1
點到面的距離根據(jù)圖中的公式計算
所以得到 total margin 的表達式如下鸟蜡,目標是最大化這個 margin膜赃,就需要最小化分母,于是變成了一個優(yōu)化問題
舉個栗子揉忘,三個點跳座,找到最優(yōu)的超平面,定義了 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 的應(yīng)用
給一段文字具壮,返回情感分類准颓,這段文字的態(tài)度是positive,還是negative
為了解決這個問題棺妓,可以只看其中的一些單詞
這段文字攘已,將僅由一些單詞和它們的計數(shù)代表
原始問題是:給你一句話,它屬于哪一類
通過 bayes rules 變成一個比較簡單容易求得的問題
問題變成怜跑,這一類中這句話出現(xiàn)的概率是多少样勃,當(dāng)然,別忘了公式里的另外兩個概率
栗子:單詞 love 在 positive 的情況下出現(xiàn)的概率是 0.1性芬,在 negative 的情況下出現(xiàn)的概率是 0.001
6. K最近鄰
k nearest neighbours
給一個新的數(shù)據(jù)時峡眶,離它最近的 k 個點中,哪個類別多植锉,這個數(shù)據(jù)就屬于哪一類
栗子:要區(qū)分 貓 和 狗辫樱,通過 claws 和 sound 兩個feature來判斷的話,圓形和三角形是已知分類的了俊庇,那么這個 star 代表的是哪一類呢
k=3時狮暑,這三條線鏈接的點就是最近的三個點,那么圓形多一些辉饱,所以這個star就是屬于貓
7. K均值
想要將一組數(shù)據(jù)搬男,分為三類,粉色數(shù)值大彭沼,黃色數(shù)值小
最開心先初始化缔逛,這里面選了最簡單的 3,2溜腐,1 作為各類的初始值
剩下的數(shù)據(jù)里译株,每個都與三個初始值計算距離,然后歸類到離它最近的初始值所在類別
分好類后挺益,計算每一類的平均值,作為新一輪的中心點
幾輪之后乘寒,分組不再變化了望众,就可以停止了
8. Adaboost
adaboost 是 bosting 的方法之一
bosting就是把若干個分類效果并不好的分類器綜合起來考慮,會得到一個效果比較好的分類器伞辛。
下圖烂翰,左右兩個決策樹,單個看是效果不怎么好的蚤氏,但是把同樣的數(shù)據(jù)投入進去甘耿,把兩個結(jié)果加起來考慮,就會增加可信度
adaboost 的栗子竿滨,手寫識別中佳恬,在畫板上可以抓取到很多 features捏境,例如 始點的方向,始點和終點的距離等等
training 的時候毁葱,會得到每個 feature 的 weight垫言,例如 2 和 3 的開頭部分很像,這個 feature 對分類起到的作用很小倾剿,它的權(quán)重也就會較小
而這個 alpha 角 就具有很強的識別性筷频,這個 feature 的權(quán)重就會較大,最后的預(yù)測結(jié)果是綜合考慮這些 feature 的結(jié)果
9. 神經(jīng)網(wǎng)絡(luò)
Neural Networks 適合一個input可能落入至少兩個類別里
NN 由若干層神經(jīng)元前痘,和它們之間的聯(lián)系組成
第一層是 input 層凛捏,最后一層是 output 層
在 hidden 層 和 output 層都有自己的 classifier
input 輸入到網(wǎng)絡(luò)中,被激活芹缔,計算的分數(shù)被傳遞到下一層葵袭,激活后面的神經(jīng)層,最后output 層的節(jié)點上的分數(shù)代表屬于各類的分數(shù)乖菱,下圖例子得到分類結(jié)果為 class 1
同樣的 input 被傳輸?shù)讲煌墓?jié)點上坡锡,之所以會得到不同的結(jié)果是因為各自節(jié)點有不同的weights 和 bias
這也就是 forward propagation
10. 馬爾可夫
Markov Chains 由 state 和 transitions 組成
栗子,根據(jù)這一句話 ‘the quick brown fox jumps over the lazy dog’窒所,要得到 markov chain
步驟鹉勒,先給每一個單詞設(shè)定成一個狀態(tài),然后計算狀態(tài)間轉(zhuǎn)換的概率
這是一句話計算出來的概率吵取,當(dāng)你用大量文本去做統(tǒng)計的時候禽额,會得到更大的狀態(tài)轉(zhuǎn)移矩陣,例如 the 后面可以連接的單詞皮官,及相應(yīng)的概率
生活中脯倒,鍵盤輸入法的備選結(jié)果也是一樣的原理,模型會更高級