機(jī)器學(xué)習(xí)分類算法中必須要懂的四種算法
本文主要介紹了 4 種應(yīng)用比較普遍的的機(jī)器學(xué)習(xí)算法,但是機(jī)器學(xué)習(xí)算法還有其他很多不同的算法,大家感興趣的可以自己去了解。
樸素貝葉斯分類樸素貝葉斯分類是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類方法,發(fā)源于古典數(shù)學(xué)理論,擁有穩(wěn)定的數(shù)學(xué)基礎(chǔ)和分類效率。它是一種十分簡(jiǎn)單的分類算法,當(dāng)然簡(jiǎn)單并不一定不好用。通過(guò)對(duì)給出的待分類項(xiàng)求解各項(xiàng)類別的出現(xiàn)概率大小,來(lái)判斷此待分類項(xiàng)屬于哪個(gè)類別,而在沒(méi)有多余條件的情況下,樸素貝葉斯分類會(huì)選擇在已知條件下,概率最大的類別。
貝葉斯分類算法的實(shí)質(zhì)就是計(jì)算條件概率的公式。在事件 B 發(fā)生的條件下,事件 A 發(fā)生的概率為 P(A | B)來(lái)表示。
P(A | B)的概率為
。在日常應(yīng)用中,我們經(jīng)??梢灾苯拥贸?P(A | B),而 P(B | A)直接得到比較困難,通過(guò)貝葉斯定理就可以通過(guò) P(A | B)獲得 P(B | A)。
而樸素貝葉斯分類的正式定義則如下:
樸素貝葉斯算法在執(zhí)行文本分類等工作是會(huì)有很好的效果,比如樸素貝葉斯算法常被使用于垃圾郵件的過(guò)濾分類中。
SVM算法支持向量機(jī)(Support Vector Machine,常簡(jiǎn)稱為 SVM)是一種監(jiān)督式學(xué)習(xí)的方法,可廣泛地應(yīng)用于統(tǒng)計(jì)分類以及回歸分析。支持向量機(jī)屬于一般化線性分類器,它能夠同時(shí)最小化經(jīng)驗(yàn)誤差與最大化幾何邊緣區(qū),因此支持向量機(jī)也被稱為最大邊緣區(qū)分類器。
同時(shí)支持向量機(jī)將向量映射到一個(gè)更高維的空間里,在這個(gè)空間里建立有一個(gè)最大間隔超平面。在分開數(shù)據(jù)的超平面的兩邊建有兩個(gè)互相平行的超平面,分隔超平面使兩個(gè)平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。
SVM 算法雖然存在難以訓(xùn)練和難以解釋的問(wèn)題,但是在非線性可分問(wèn)題上的表現(xiàn)十分優(yōu)秀,在非線性可分問(wèn)題中常選擇 SVM 算法。
基于 KNN 的算法K - 近鄰算法,簡(jiǎn)稱 KNN(k-Nearest Neighbor),它同樣是一個(gè)比較簡(jiǎn)單的分類、預(yù)測(cè)算法。對(duì)選取與待分類、待預(yù)測(cè)數(shù)據(jù)的最相似的 K 個(gè)訓(xùn)練數(shù)據(jù),通過(guò)對(duì)這 K 個(gè)數(shù)據(jù)的結(jié)果或者分類標(biāo)號(hào)取平均、取眾數(shù)等方法得到待分類、待預(yù)測(cè)數(shù)據(jù)的結(jié)果或者分類標(biāo)號(hào)。
K - 近鄰算法如上圖所示,有兩類不同的樣本數(shù)據(jù),分別用藍(lán)色的小正方形和紅色的小三角形表示,而圖正中間的那個(gè)綠色的圓所標(biāo)示的數(shù)據(jù)則是待分類的數(shù)據(jù)。在不知道中間那個(gè)綠色的數(shù)據(jù)是從屬于哪一類(藍(lán)色小正方形or紅色小三角形)的情況下,我們可以從它的臨近的樣本進(jìn)行判斷。
如果 K=3,綠色圓點(diǎn)最近的 3 個(gè)鄰居是 2 個(gè)紅色小三角形和 1 個(gè)藍(lán)色小正方形,少數(shù)從屬于多數(shù),基于統(tǒng)計(jì)的方法,判定綠色的這個(gè)待分類點(diǎn)屬于紅色的三角形一類。
如果 K=5,綠色圓點(diǎn)的最近的 5 個(gè)鄰居是 2 個(gè)紅色三角形和 3 個(gè)藍(lán)色的正方形,還是少數(shù)從屬于多數(shù),基于統(tǒng)計(jì)的方法,判定綠色的這個(gè)待分類點(diǎn)屬于藍(lán)色的正方形一類。
從上文我們看到,當(dāng)無(wú)法判定當(dāng)前待分類點(diǎn)是從屬于已知分類中的哪一類時(shí),可以依據(jù)統(tǒng)計(jì)學(xué)的理論看它所處的位置特征,衡量它周圍鄰居的權(quán)重,而把它歸為(或分配)到權(quán)重更大的那一類,這就是 K 近鄰算法的核心思想。