0
本文作者: AI研習(xí)社 | 2017-04-28 16:21 |
雷鋒網(wǎng)按:本文作者李東軒,原文載于作者個(gè)人博客,雷鋒網(wǎng)已獲授權(quán)。
在機(jī)器學(xué)習(xí)中,無監(jiān)督學(xué)習(xí)(Unsupervised learning)就是聚類,事先不知道樣本的類別,通過某種辦法,把相似的樣本放在一起歸位一類;而監(jiān)督型學(xué)習(xí)(Supervised learning)就是有訓(xùn)練樣本,帶有屬性標(biāo)簽,也可以理解成樣本有輸入有輸出。
所有的回歸算法和分類算法都屬于監(jiān)督學(xué)習(xí)?;貧w(Regression)和分類(Classification)的算法區(qū)別在于輸出變量的類型,定量輸出稱為回歸,或者說是連續(xù)變量預(yù)測(cè);定性輸出稱為分類,或者說是離散變量預(yù)測(cè)。
以下是一些常用的監(jiān)督型學(xué)習(xí)方法。
K-近鄰是一種分類算法,其思路是:如果一個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別。K通常是不大于20的整數(shù)。KNN算法中,所選擇的鄰居都是已經(jīng)正確分類的對(duì)象。該方法在定類決策上只依據(jù)最鄰近的一個(gè)或者幾個(gè)樣本的類別來決定待分樣本所屬的類別。
如上圖,綠色圓要被決定賦予哪個(gè)類,是紅色三角形還是藍(lán)色四方形?如果K=3,由于紅色三角形所占比例為2/3,綠色圓將被賦予紅色三角形那個(gè)類,如果K=5,由于藍(lán)色四方形比例為3/5,因此綠色圓被賦予藍(lán)色四方形類。
算法的步驟為:
(1)計(jì)算測(cè)試數(shù)據(jù)與各個(gè)訓(xùn)練數(shù)據(jù)之間的距離;
(2)按照距離的遞增關(guān)系進(jìn)行排序;
(3)選取距離最小的K個(gè)點(diǎn);
(4)確定前K個(gè)點(diǎn)所在類別的出現(xiàn)頻率;
(5)返回前K個(gè)點(diǎn)中出現(xiàn)頻率最高的類別作為測(cè)試數(shù)據(jù)的預(yù)測(cè)分類。
決策樹是一種常見的分類方法,其思想和“人類逐步分析比較然后作出結(jié)論”的過程十分相似。決策過程和下圖類似。
決策樹是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。其每個(gè)非葉節(jié)點(diǎn)表示一個(gè)特征屬性上的測(cè)試,每個(gè)分支代表這個(gè)特征屬性在某個(gè)值域上的輸出,而每個(gè)葉節(jié)點(diǎn)存放一個(gè)類別。使用決策樹進(jìn)行決策的過程就是從根節(jié)點(diǎn)開始,測(cè)試待分類項(xiàng)中相應(yīng)的特征屬性,并按照其值選擇輸出分支,直到到達(dá)葉子節(jié)點(diǎn),將葉子節(jié)點(diǎn)存放的類別作為決策結(jié)果。
不同于貝葉斯算法,決策樹的構(gòu)造過程不依賴領(lǐng)域知識(shí),它使用屬性選擇度量來選擇將元組最好地劃分成不同的類的屬性。所謂決策樹的構(gòu)造就是進(jìn)行屬性選擇度量確定各個(gè)特征屬性之間的拓?fù)浣Y(jié)構(gòu)。
那么如何劃分?jǐn)?shù)據(jù)呢?各個(gè)特征的優(yōu)先級(jí)是怎么排的?常用的劃分?jǐn)?shù)據(jù)集方法有ID3和C4.5
(1) ID3算法
劃分?jǐn)?shù)據(jù)集的最大原則就是將數(shù)據(jù)變得更加有序。熵(entropy)是描述信息不確定性(雜亂程度)的一個(gè)值。設(shè)S是當(dāng)前數(shù)據(jù)下的劃分,那么S的信息熵的定義如下:
這里,n是類別的數(shù)目,p(xi)表示選擇xi類別的概率(可用類別數(shù)量除以總數(shù)量估計(jì))。
現(xiàn)在我們假設(shè)將S按屬性A進(jìn)行劃分,則S的條件信息熵(A對(duì)S劃分的期望信息)為:
這里,在屬性A的條件下,數(shù)據(jù)被劃分成m個(gè)類別(例如,屬性A是體重,有輕、中、重三個(gè)選項(xiàng),那么m=3),p(tj)表示類別tj(屬性A中所有具有第j個(gè)特性的所有數(shù)據(jù))的數(shù)量與S總數(shù)量的比值,H(tj)表示子類別tj的熵。
信息增益(Information gain)是指在劃分?jǐn)?shù)據(jù)集之前之后信息發(fā)生的變化,其定義如下:
在ID3算法里,每一次迭代過程中會(huì)計(jì)算所有剩余屬性的信息增益,然后選擇具有最大增益的屬性對(duì)數(shù)據(jù)集進(jìn)行劃分,如此迭代,直至結(jié)束。這里有一個(gè)ID3算法的實(shí)例過程。
(2) C4.5算法
D3算法存在一個(gè)問題,就是偏向于多值屬性,例如,如果存在唯一標(biāo)識(shí)屬性ID,則ID3會(huì)選擇它作為分裂屬性,這樣雖然使得劃分充分純凈,但這種劃分對(duì)分類幾乎毫無用處。ID3的后繼算法C4.5使用增益率(gain ratio)的信息增益擴(kuò)充,試圖克服這個(gè)偏倚。嚴(yán)格上說C4.5是ID3的一個(gè)改進(jìn)算法。
在按照ID3的中的方法得到了信息增益后,再定義分裂信息(Split Information):
然后定義增益率(Gain Ratio):
C4.5選擇增益率為分裂屬性(連續(xù)屬性要用增益率離散化)。C4.5算法有如下優(yōu)點(diǎn):產(chǎn)生的分類規(guī)則易于理解,準(zhǔn)確率較高。其缺點(diǎn)是:在構(gòu)造樹的過程中,需要對(duì)數(shù)據(jù)集進(jìn)行多次的順序掃描和排序,因而導(dǎo)致算法的低效。此外,C4.5只適合于能夠駐留于內(nèi)存的數(shù)據(jù)集,當(dāng)訓(xùn)練集大得無法在內(nèi)存容納時(shí)程序無法運(yùn)行。
如果所有屬性都作為分裂屬性用光了,但有的子集還不是純凈集,即集合內(nèi)的元素不屬于同一類別。在這種情況下,由于沒有更多信息可以使用了,一般對(duì)這些子集進(jìn)行“多數(shù)表決”,即使用此子集中出現(xiàn)次數(shù)最多的類別作為此節(jié)點(diǎn)類別,然后將此節(jié)點(diǎn)作為葉子節(jié)點(diǎn)。
在實(shí)際構(gòu)造決策樹時(shí),通常要進(jìn)行剪枝,這時(shí)為了處理由于數(shù)據(jù)中的噪聲和離群點(diǎn)導(dǎo)致的過分?jǐn)M合問題。剪枝有兩種:先剪枝——在構(gòu)造過程中,當(dāng)某個(gè)節(jié)點(diǎn)滿足剪枝條件,則直接停止此分支的構(gòu)造;后剪枝——先構(gòu)造完成完整的決策樹,再通過某些條件遍歷樹進(jìn)行剪枝。悲觀錯(cuò)誤剪枝PEP算法是一種常見的事后剪枝策略。
貝葉斯分類是一系列分類算法的總稱,這類算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類。樸素貝葉斯算法(Naive Bayesian) 是其中應(yīng)用最為廣泛的分類算法之一。樸素貝葉斯分類器基于一個(gè)簡(jiǎn)單的假定:給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立。樸素貝葉斯的基本思想是對(duì)于給出的待分類項(xiàng),求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為此待分類項(xiàng)屬于哪個(gè)類別。
首先給出條件概率的定義,P(A∥B)表示事件A在B發(fā)生下的條件概率,其公式為:
貝葉斯定理用來描述兩個(gè)條件概率之間的關(guān)系,貝葉斯定理公式為:
樸素貝葉斯分類算法的具體步驟如下:
(1)設(shè)x={a1,a2,...,am}為一個(gè)待分類項(xiàng),a1,a2,...,am為x的m個(gè)特征屬性;
(2)設(shè)有類別集合C={y1,y2,...,yn},即共有n個(gè)類別;
(3)依次計(jì)算x屬于各項(xiàng)分類的條件概率,即計(jì)算P(y1∥x),P(y2∥x),… ,P(yn∥x):
注意,算法的下一步驟是對(duì)比這些結(jié)果的大小,由于各項(xiàng)分母都是P(x),所以分母不用計(jì)算。分子部分中P(yn)和P(ai∥yn)都是通過樣本集統(tǒng)計(jì)而得,其中P(yn)的值為樣本集中屬于yn類的數(shù)量與樣本總數(shù)量之比,P(ai∥yn)的值為yn類中滿足屬性ai的數(shù)量與yn類下樣本總數(shù)量之比。
這樣的計(jì)算方式符合特征屬性是離散值的情況,如果特征屬性是連續(xù)值時(shí),通常假定其值服從高斯分布(也稱正態(tài)分布),即:
那么P(ai∥yn)的值為:
其中,ηyn和σyn分別為訓(xùn)練樣本yn類別中ai特征項(xiàng)劃分的均值和標(biāo)準(zhǔn)差。
對(duì)于P(a∥y)=0的情況,當(dāng)某個(gè)類別下某個(gè)特征項(xiàng)劃分沒有出現(xiàn)時(shí),就是產(chǎn)生這種現(xiàn)象,這會(huì)令分類器質(zhì)量大大降低。因此引入Laplace校準(zhǔn),對(duì)沒類別下所有劃分的計(jì)數(shù)加1,這樣如果訓(xùn)練樣本集數(shù)量充分大時(shí),并不會(huì)對(duì)結(jié)果產(chǎn)生影響,也避免了乘積為0的情況。
(4)比較(3)中所有條件概率的大小,最大的即為預(yù)測(cè)分類結(jié)果,即:
這里有一個(gè)樸素貝葉斯分類實(shí)例:檢測(cè)SNS社區(qū)中不真實(shí)賬號(hào)。
我們知道,線性回歸就是根據(jù)已知數(shù)據(jù)集求一線性函數(shù),使其盡可能擬合數(shù)據(jù),讓損失函數(shù)最小,常用的線性回歸最優(yōu)法有最小二乘法和梯度下降法。而邏輯回歸是一種非線性回歸模型,相比于線性回歸,它多了一個(gè)sigmoid函數(shù)(或稱為L(zhǎng)ogistic函數(shù))。邏輯回歸是一種分類算法,主要用于二分類問題。邏輯回歸的具體步驟如下:
(1)定義假設(shè)函數(shù)h(即hypothesis)
Sigmoid函數(shù)的圖像是一個(gè)S型,預(yù)測(cè)函數(shù)就是將sigmoid函數(shù)g(x)里的自變量x替換成了邊界函數(shù)θ(x),如下:
這里hθ(x)表示結(jié)果取1的概率,因此對(duì)于輸入x分類結(jié)果為類別1和類別0的概率分別為:
(2)定義邊界函數(shù)θ(x)
對(duì)于二維數(shù)據(jù),如果是預(yù)設(shè)線性線性邊界,那么邊界函數(shù)為:
如果是預(yù)設(shè)非線性線性邊界,那么邊界函數(shù)為的形式就多了,例如:
假設(shè)我們現(xiàn)在要解決的是識(shí)別圖片中的0或1(樣本庫只有0和1的圖片),圖片大小是20*20,那么這個(gè)時(shí)候有400個(gè)特征向量,那么邊界函數(shù)為:
(3)構(gòu)造損失函數(shù)(cost function,loss function)
損失函數(shù)的大小可以體現(xiàn)出邊界函數(shù)的各項(xiàng)參數(shù)是否最優(yōu)。對(duì)于線性回歸,損失函數(shù)是歐式距離指標(biāo),但這樣的Cost Function對(duì)于邏輯回歸是不可行的,因?yàn)樵谶壿嫽貧w中平方差損失函數(shù)是非凸,我們需要其他形式的Cost Function來保證邏輯回歸的成本函數(shù)是凸函數(shù)。
我們選擇對(duì)數(shù)似然損失函數(shù):
那么邏輯回歸的Cost Function可以表示為:
這里m表示有m個(gè)樣本,y是二值型數(shù)據(jù),只能0或1,代表兩種不同的類別。
(4)求最優(yōu)θ
要想找到最合適的邊界函數(shù)參數(shù),只要使J(θ)最小即可。最優(yōu)化的表達(dá)式為:
與線性回歸相似,可以采用梯度下降法尋優(yōu),也可以采用其他方法,具體見下面列出的第5個(gè)參考網(wǎng)址。
參考資料:
Coursera公開課筆記: 斯坦福大學(xué)機(jī)器學(xué)習(xí)第六課“邏輯回歸(Logistic Regression)”
從初級(jí)到高級(jí),理論 + 實(shí)戰(zhàn),一站式深度了解 TensorFlow!
本課程面向深度學(xué)習(xí)開發(fā)者,講授如何利用 TensorFlow 解決圖像識(shí)別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎(chǔ)實(shí)戰(zhàn)技巧開始,一步步教授學(xué)員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,并最終掌握一整套基于 TensorFlow 做深度學(xué)習(xí)開發(fā)的專業(yè)技能。
兩名授課老師佟達(dá)、白發(fā)川身為 ThoughtWorks 的資深技術(shù)專家,具有豐富的大數(shù)據(jù)平臺(tái)搭建、深度學(xué)習(xí)系統(tǒng)開發(fā)項(xiàng)目經(jīng)驗(yàn)。
時(shí)間:每周二、四晚 20:00-21:00
開課時(shí)長(zhǎng):總學(xué)時(shí) 20 小時(shí),分 10 周完成,每周 2 次,每次 1 小時(shí)
線上授課地址:http://www.mooc.ai/
雷鋒網(wǎng)相關(guān)閱讀:
機(jī)器學(xué)習(xí)十大算法都是何方神圣?看完你就懂了
最新出爐——數(shù)據(jù)科學(xué)家最常使用的十大算法
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。