文檔簡介
管理信息化人工智能機器學習簡明原理支持向量機即supportvectormachine(簡稱SVM),是機器學習領域經典的分類算法。1.關于SVM的簡介支持向量是距離分類超平面近的那些點,SVM的思想就是使得支持向量到分類超平面的間隔圖11的間隔大于支持向量到超平面2的間隔,因此超平面1優(yōu)于超平面2。圖1兩個超平面示例SVM可以很好得解決二分類問題,對于多分類情況,就需要對模型進行改動。如one-versus-rest法,這種方法每次選擇一個類別作為正樣本,剩下其他類別作為負樣本,假設一共有33個不同的SVM3個SVM模型中,得到的3個結果中的最大值則為最終的分類結果。SVMSVM算法的測試準確度并不一定都很以及核函數的選擇等因素。任何模型都是優(yōu)點與缺點并存的。SVM的優(yōu)點是:1.可以解決線性不可分的情況。如圖2所示,兩類數據點根本無法用超平面分隔開;2.計算復雜度僅取決于少量支持向量,對于數據量大的數據集計算復雜度低。SVM的缺點是:1.經典的SVM算法僅支持二分類,對于多分類問題需要改動模型;2.不支持類別型數據,需在預處理階段將類別型數據轉換成離散型數據。類別型數據即"男"、"女"這類由字符串表示某類信息的數據,需將這類數據轉換成離散型數據如1、2。圖2線性不可分問題2.SVM基本原理SVM原理分為軟間隔最大化、拉格朗日對偶、最優(yōu)化問題求解、核函數、序列最小優(yōu)化SMO2.1.軟間隔最大化SVM的核心思路是最大化支持向量到分隔超平面的間隔。后面所有的推導都是以最大化此間SVM模型的目標函數和約束條件。既然要最大化間隔,那么回顧下點x到超平面(w,b)的距離公式:其中超平面的公式為:由此可推出點x到超平面(w,b)的幾何間隔為:其中xi代表第i條數據,yi代表第i條數據對應的目標變量的取值,取值有+1和-1兩種。所以當第i條數據被正確分類時,y取值和w*x+b取值的正負一致,幾何間隔為正;當被錯誤分類時,y取值和w*x+b取值的正負相反,幾何間隔為負。圖3樣本數關于w*x+b的取值符號定義幾何間隔中最小的為:由此,可以得到間隔最大化問題的目標函數:并遵循如下約束條件:做如下變換:則目標函數轉換為:相應的約束條件變?yōu)椋鹤鋈缦伦儞Q:可得目標函數和約束條件變?yōu)椋河捎趙,b成倍數變化并不會影響超平面的公式,所以:此時得到最終的間隔最大化的目標函數和約束條件如下:outliers,這些數據點并不滿足上面推導出的約束條件,如圖4所示,圖中點A就是outlier特異點。圖4Outlier特異點為了解決這種問題,對每個樣本點引進一個松弛變量,使得約束條件變?yōu)椋哼@樣給outlier的約束條件加上一個變量,使其可以滿足大于等于1變量變?yōu)椋浩渲蠧加入松弛變量的目標函數就是軟間隔最大化。2.2.拉格朗日對偶函數如下:分析可知:則原最優(yōu)化問題轉換成:問題得到原問題的最優(yōu)解。原最優(yōu)化問題的對偶問題為:2.3.最優(yōu)化問題求解解關于拉格朗日函數的極小化問題。對三個變量分別求偏導得:將以上三式帶入拉格朗日函數中得:那么極大極小化拉格朗日函數轉換成:為求解方便,將極大轉換成極小得:2.4.核函數圖2將超平面換成超曲面,則可以將正負樣本正確分類,如圖5所示。圖5超曲面分離正負樣本我們知道曲面的公式是:映射到新坐標如下:可將超曲面在新坐標下表示成超平面:也就是將在二維空間(x1,x2)下線性不可分的問題轉換成了在五維空間(z1,z2,z3,z4,z5)下線性可分的問題。得映射后新坐標下的內積:有一核函數如下:可知成。那么為什么是映射到高維后的內積運算呢?這是因為在上節(jié)中我們得到了如下目標函數:斯核可以將低維空間映射到無窮維。運用核函數后,最優(yōu)化問題的目標函數和約束條件變?yōu)椋?.5.序列最小優(yōu)化(Sequentialminimaloptimization)N個alpha自變量的目標變量和兩個約束條件。由于目標變量中自變量alpha有N個,為了便與求解,每次選出一對自變量alpha,然后求目標函數關于其中一個alphaalphaalphaalpha并執(zhí)行上述操作,直到達到最大迭代數或沒有任何自變量alpha再發(fā)生變化為止,這就是SMO的基本思想。說直白些,SMO就是在約束條件下對目標函數的優(yōu)化求解算法。為何不能每次只選一個自變量進行優(yōu)化?那是因為只選一個自變量alpha個約束條件,即所有alpha和y值乘積的和等于0。下面是詳細的SMO過程。假設選出了兩個自變量分別是alpha1和alpha2,除了這兩個自變量之外的其他自變量保持固定,則目標變量和約束條件轉化為:將約束條件中的alpha1用alpha2表示,并代入目標函數中,則將目標函數轉化成只包含alpha2的目標函數,讓該目標函數對alpha2的偏導等于0:可求得alpha2未經修剪的值:之所以說alpha2是未經修剪的值是因為所有alpha都必須滿足大于等于0且小于等于C的約束條件,用此約束條件將alpha2進行修剪,修剪過程如下:由此得:分兩種情況討論:情況1.當y1等于y2時,有:情況2.當y1不等于y2時,有:修剪后,可得alpha2的取值如下:由alpha2和alpha1的關系,可得:在完成alpha1和alpha2的一輪更新后,需要同時更新b的值,當alpha1更新后的值滿足0<alpha1<C時,由KKT條件得:由于篇幅有限,在此就不把推導過程一一列舉,可得:同樣的道理,當alpha2更新后的值滿足0<alpha1<C時可得:若更新后的alpha1和alpha2同時滿足大于0且小于C的條件,那么b就等于b1等于b2;否則,b取b1和b2的中點。那么問題來了,如何選擇alpha1和alpha2呢?選擇違背下列KKT條件推導結果的alpha作為alpha1:為了讓每次變化盡可能大,alpha2的選擇滿足如下式子最大,即步長最大化:其中E是上面提到過的預測值和真實值差值的絕對值,也就是誤差值。按上述方法不斷選擇一對alpha并更新,直到達到最大迭代次數或所有alpha都不再變化,則停止迭代。有朋友就會問,求出alpha之后呢?如何判斷新樣本數據屬于1還是-1呢?別忘了,在最優(yōu)化求解一節(jié),我們得到了如下:若f(x)大于0,則新樣本數據屬于1;否則,新樣本數據屬于-1??梢砸姷?,求出alpha后,所有問題都迎刃而解了。3.頻繁項集與關聯規(guī)則FP-growth基本原理3.1.從啤酒和尿布引出的頻繁項集在上一節(jié)中,主要介紹了支持向量機SVM學習主要分為四大類,分別是分類,聚類,回歸和關聯分析。第一篇中的SVM就屬于分類。那么下面筆者開始介紹關聯分析。關聯分析分為頻繁項集挖掘和關聯規(guī)則挖掘。頻繁項集。頻繁項集是在數據庫中大量頻繁出現的數據集合。那么發(fā)現這些頻繁項集有什么意義呢?1.用于制定營銷策略。如同啤酒與尿布的例子,超市如果將啤酒和尿布放在相鄰的位置,加銷量。2."頻繁項集"時,瀏覽器自動彈出如"頻繁項集置信度""頻繁項集關聯規(guī)則"瀏覽器的智能,其實這里的秘訣就是頻繁項集。也就是說,在大量的用戶搜索記錄中,"頻繁項集"和"置信度"共同出現在了大多數的搜索記錄中。同理,"頻繁項集"和"關聯規(guī)則"也頻繁得共同出現在搜索記錄中。3.頻繁項集挖掘算法可以得到該事物的熱點新聞。主流的頻繁項集挖掘算法有Apriori和FP-growth。其中Apriori算法需要多次掃描數據庫,FP-growthFrequentPatternGrowthFP樹(即FrequentPatternTree)這樣的數據結構,巧妙得將數據存儲在FP樹中,只需要在構建FPFP-growth算法比AprioriFP項集挖掘原理一節(jié)介紹。挖掘出頻繁項集后,可以從頻繁項集中進一步挖掘關聯規(guī)則。3.2.關聯規(guī)則簡介關聯規(guī)則是在頻繁項集的基礎上得到的。關聯規(guī)則指由集合A,可以在某置信度下推出集合BAB{'雞蛋','面包'}->{'牛奶'}0.9有90%的客戶還買了牛奶。關聯規(guī)則可以用來發(fā)現很多有趣的規(guī)律。這其中需要先闡明兩個概念:支持度和置信度。3.2.1.支持度Support支持度指某頻繁項集在整個數據集中的比例。假設數據集有10{'雞蛋','面包'}的有5條記錄,那么{'雞蛋','面包'}的支持度就是5/10=0.5。3.2.2.置信度Confidence置信度是針對某個關聯規(guī)則定義的。有關聯規(guī)則如{'雞蛋','面包'}->{'牛奶'},它的置信度計算公式為{'雞蛋','面包','牛奶'}的支持度/{'雞蛋','面包'}的支持度。假設{'雞蛋','面包','牛奶'}的支持度為0.45{'雞蛋','面包'}的支持度為0.5{'雞蛋','面包'}->{'牛奶'}的置信度為0.45/0.5=0.9。關聯規(guī)則用于發(fā)現if->then這樣的規(guī)則,并可以給出這條規(guī)則的可信度(即置信度)?,F{'''多個ip地址同時發(fā)送數據'}->{'異常'},該規(guī)則的置信度為0.85。這條規(guī)則表示,當流量數據包大,并有多個ip地址同時向目標ip發(fā)送數據時,則有85%的概率存在異常,需要觸發(fā)報警。3.3.頻繁項集挖掘原理頻繁項集挖掘分為構建FPFP作為例子展開,該示例數據集共四條數據。表格1示例數據集數據集a,b,cc,d,b,ad,e,ab,a3.3.1.構建FP樹構建FP樹時,首先統(tǒng)計數據集中各個元素出現的頻數,將頻數小于最小支持度的元素刪除,的數據集中的每條記錄構建FP樹,同時更新頭指針表。頭指針表包含所有頻繁項及它們的頻數,還有每個頻繁項指向下一個相同元素的指針,該指針主要在挖掘FP樹時使用。下面用上文提到的數據集展開說明,假設最小支持度為2。首先,統(tǒng)計數據集中各元素出現的次數,得a出現4次,b出現3次,c出現2次,d出現2次,e出現1次。接著,將出現次數小于最小支持度2的元素(即e)在數據集中刪除,并將數據集按出現次數由高到低排序,得表格2。表格2示例數據集數據集a,b,ca,b,c,da,da,b然后,用更新后的數據集中的記錄創(chuàng)建FPFP加的記錄與FPFP樹存在不一致,則在不一致的地方分叉,創(chuàng)建新的結點。如圖6~圖9所示。注意,FP樹的根節(jié)點是null。圖6向FP樹添加第一條記錄{a,b,c}圖7向FP樹添加第二條記錄{a,b,c,d}圖8向FP樹添加第三條記錄{a,d}圖9向FP樹添加第四條記錄{a,b}3.3.2.挖掘頻繁項集得到FP樹后,需要對每一個頻繁項,逐個挖掘頻繁項集。具體過程為:首先獲得頻繁項的FPFP樹中的每個頻繁項,獲得前綴路徑并以此構建新的條件FPFP樹中只包含一個頻繁項為止。下面以元素c為例,從上文圖9創(chuàng)建好的FP樹中挖掘頻繁項集。首先,獲得以c元素的前綴路徑{a:2,b:2},注意此處a和b的頻數為2是因為c的頻數為2,所以與c共同出現的a和b的頻數就都為2。接著,創(chuàng)建條件FP樹,具體的創(chuàng)建過程和上一節(jié)創(chuàng)建FP樹的過程一樣,如圖10所示。圖10c元素的前綴路徑構成的條件FP樹建成條件FP樹,直到條件FP樹中只包含一個元素時返回。1.對元素a,獲得前綴路徑為{},則頻繁項集返回{c,a};2.對元素b{a}FP圖11條件FP{c,b,a}b{c,b}也是頻繁項集。再加上{c}本身就是頻繁項集,所以c對應的頻繁項集有:{c}{c,a}{c,b}{c,b,a}。圖11b元素的前綴路徑構成的條件FP樹將其他元素a,b,d同樣按照上述對c的操作,得到表格3所示頻繁項集。表格3元素a,b,c,d對應的頻繁項集元素頻繁項集a{a}b{b,a}c{c}{c,a}{c,b}{c,b,a}dud5b6km{d,a}3.4.關聯規(guī)則挖掘原理算置信度,輸出置信度大于最小置信度的所有規(guī)則。以頻繁項集{a,b,c}為例,構建所有可能的規(guī)則:{b,c}->{a},{a,c}->,{a,b}->{c},{c}->{a,b},->{a,c},{a}->{b,c}。對每條規(guī)則計算置信度后,輸出滿足要求的規(guī)則即可。4.NaiveBayes基本原理SVM模型不同的的是,樸素貝葉斯模型不需要針對目該假設極大得簡化了運算,使得樸素貝葉斯模型變得非常簡單。樣就完成了文本到數值上的轉化,方便后期計算條件概率和先驗概率。學習,本文重點介紹樸素貝葉斯的原理和實現。4.1.樸素貝葉斯原理樸素貝葉斯模型主要利用貝葉斯公式進行展開。貝葉斯公式如下:公式中P(C|X)表示X屬于類別C的概率,P(X|C)表示類別C中X出現的概率,P(C)表示類別CP(C)P(X|C)P(C|X)概率最大的類作為XC0和C1P(X)要考慮P(X),只需考慮如下:1.如果P(X|C0)*P(C0)>P(X|C1)*P(C1),則P(C0|X)>P(C1|X),可得X屬于C0類;2.如果P(X|C0)*P(C0)<P(X|C1)*P(C1),則P(C0|X)<P(C1|X),可得X屬于C1類。由上述可知,需要計算P(X|C)和P(C)。樸素貝葉斯假設屬性之間條件獨立,可得:P(X|C)=P(X0|C)*P(X1|C)*P(X2|C)*P(X3|C)*…*P(Xn|C)令Dc表示訓練集D中第C類樣本組成的集合,可得:P(Xi|C)=|Dc,xi|/|Dc,x|C的樣本在第i個屬性上頻數總和除以類別為C的樣P(Xi|C)為0造成P(X|C)為01和2P(Xi|C)=(|Dc,xi|+1)/(|Dc,x|+2)。又有P(C)=|Dc|/|D|,表示類別為C的樣本集合大小除以數據集D的樣本集合大小。至此,通過P(X|C0)*P(C0)和P(X|C1)*P(C1)的大小比較,可得X所屬類別。但是小數連乘會造成所得值幾乎等于0loglog(P(X|C0)*P(C0))和log(P(X|C1)*P(C1))的大小來判斷X得:log(P(X|C0)*P(C0))=log(P(X|C0))+log(P(C0))=log(P(X0|C0))+log(P(X1|C0))+log(P(X2|C0))+…+log(P(Xn|C0))+log(P(C0)),同理可得log(P(X|C1)*P(C1))=log(P(X|C1))+log(P(C1))=log(P(X0|C1))+log(P(X1|C1))+log(P(X2|C1))+…+log(P(Xn|C1))+log(P(C1))。4.2.用樸素貝葉斯進行文本分類條件概率P(X|C)和先驗概率P(C)P(X|C)與先驗概率P(C)計算后驗概率P(C0|X)P(C1|X)P(C0|X)P(C1|X)大小得到X屬于C0類還是C1表格4所示訓練數據和表格5所示測試數據展開介紹。表格4示例訓練數據集類別訓練文本1'book','student','campus','study'0'others','game','sky'1'campus','book'0'others','yes'表格5示例測試數據集類別訓練文本?'book','campus','study'4.2.1.從文本到詞向量首先需要將文本表示成詞向量,去掉重復的詞。將表1中示例數據集表示成詞向量如下:['book','student','campus','study','others','game','sky','yes']可以看出,重復的'campus','book','others'都只出現了一次。然后,需要將文本列表轉換成詞向量列表,文本中的詞在詞向量中出現為10,如表格6、表格7所示:表格6訓練文本詞向量列表類別訓練文本1[1,1,1,1,0,0,0,0]0[0,0,0,0,1,1,1,0]1[1,0,1,0,0,0,0,0]0[0,0,0,0,1,0,0,1]表格7測試文本詞向量列表類別訓練文本?[1,0,1,1,0,0,0,0]4.2.2.從詞向量到條件概率和先驗概率由上一章知,條件概率P(X|C)=P(X0|C)*P(X1|C)*P(X2|C)*P(X3|C)*…*P(Xn|C),為防止概率為0影響結果,加入拉普拉斯平滑后P(Xi|C)=(|Dc,xi|+1)/(|Dc,x|+2),先驗概率P(C)=|Dc|/|D|。為防止小數連乘造成結果幾乎為0,引入log函數,由于測試文本只包含X0,X2,X3,得:log(P(X|C0)*P(C0))=log(P(X0|C0))+log(P(X2|C0))+log(P(X3|C0))+log(P(C0))log(P(X|C1)*P(C1))=log(P(X0|C1))+log(P(X2|C1))+log(P(X3|C1))+log(P(C1))代入數據,得P(X0|C0)=P(X2|C0)=P(X3|C0)=(0+1)/(5+2)=1/7,P(C0)=P(C1)=2/4,P(X0|C1)=P(X2|C1)=(2+1)/(6+2)=3/8,P(X3|C1)=(1+1)/(6+2)=2/8,故可得:log(P(X|C0)*P(C0))=log(1/7)+log(1/7)+log(1/7)+log(2/4)=-2.84log(P(X|C1)*P(C1))=log(3/8)+log(3/8)+log(2/8)+log(2/4)=-1.764.2.3.根據后驗概率分類由上一章知,因此后驗概率P(C0|X)只需考慮P(X|C0)*P(C0),同理后驗概率P(C1|X)只需考慮P(X|C1)*P(C1)。已知:如果log(P(X|C0)*P(C0))>log(P(X|C1)*P(C1)),則P(C0|X)>P(C1|X),可得X屬于C0類;如果log(P(X|C0)*P(C0))<log(P(X|C1)*P(C1)),則P(C0|X)<P(C1|X),可得X屬于C1類。又由于-1.76>-2.84,所以log(P(X|C1)*P(C1))>log(P(X|C0)*P(C0)),即P(C1|X)>P(C0|X),可得測試文本{'book','campus','study'}屬于類別1。5.決策樹基本原理決策樹算法又分很多種,常用的有ID3C4.5和CARTID3和C4.5決策樹更傾其劃分成離散型屬性值。而CART決策樹,即分類回歸樹,直接支持連續(xù)型屬性值。由于篇幅限制CART樹會放在下一篇文章進行介紹,本文主要詳細介紹ID3和C4.5決策樹。決策樹利用了樹型結構進行決策,是經典的if-then特征或屬性。注意本文中提到的特征和屬性是同一個概念。為了讓讀者有一個感性的認識,請看圖12所示決策樹。圖12決策樹示例圖1果。不圓的不是蘋果。圓的但不紅的不是蘋果。本文將著重介紹ID3和C4.5兩種決策樹。決策樹需要選擇最優(yōu)特征劃分數據集。這兩種決到信息和信息熵的概念。待分類的事物可能劃分在多個類別中,則符號Xi的信息是:可知P(Xi)越大,則I(Xi)越小,即Xi的概率越大,則Xi包含的信息越少。我們都知道物理中的熵用來衡量混亂程度,熵越大說明越混亂,熵越小說明越單一。同樣,信息熵用來衡量信息中的混亂程度。用所有類別所有可能值包含的信息期望值表示信息熵,計算方法如下:ID3決策樹利用了信息增益來選擇最優(yōu)特征,用這種方法選擇的特征是使得信息熵增益最大的特征。而C4.5決策樹利用了信息增益比來選擇最優(yōu)特征。用這種方法選擇的特征是使得信息增益比最大的特征。體現在信息增益對選擇屬性取值多的特征更有利。因為按屬性取值多的特征劃分數據集后,子的概念,對屬性取值多的特征會有一定懲罰。5.1.決策樹原理5.1.1.選擇最優(yōu)特征有很多種,ID3決策樹用信息增益選擇最優(yōu)特征,C4.5決策樹用信息增益比選擇最優(yōu)特征。5.1.2.信息增益-用于ID3決策樹大,說明劃分后的數據集信息熵更小,即該數據集類別更趨于一致。特征A對數據集D的信息增益g(D,A)為D的信息熵與按特征A進行劃分后D的信息熵之差,即其中,5.1.3.信息增益比–用于C4.5決策樹上引入了類似懲罰因子的概念。特征A對數據集D的信息增益比gg(D,A)為信息增益g(D,A)與數據集D關于特征A的取值的熵HA(D)的比值,即其中,n是特征AHA(D)g(D,A)會比較大,但是數據集D關于特征A的取值的熵HA(D)會比較大,因而兩者的比值信息增益比gg(D,A)會比較小。個目的?;嶂笖抵饕糜贑ART樹(即分類回歸樹)的分類樹中的特征選擇。關于基尼指數的詳細內容會在下一篇文章介紹。5.2.用ID3決策樹進行分類本節(jié)主要介紹用ID31用C4.5決策樹進行分類的過程會在下節(jié)介紹。表格8示例數據集圓的紅的分類1111000100001005.2.1.ID3決策樹選擇最優(yōu)特征表格8數據集的信息熵為:-1/5*log(1/5)-4/5*log(4/5)=0.2171.按特征"圓的"劃分數據集,則信息熵為:3/5*H(D1)+2/5*H(D0)=3/5*[-1/3*log(1/3)–2/3*log(2/3)]+2/5*[-2/2*log(2/2)]=0.166則信息增益為:0.217–0.166=0.0512.按特征"紅的"劃分數據集,則信息熵為:2/5*H(D1)+3/5*H(D0)=2/5*[-1/2*log(1/2)–1/2*log(1/2)]+3/5*[-3/3*log(3/3)]=0.120則信息增益為:0.217–0.120=0.097"紅的"比按特征"圓的""紅的"為最優(yōu)劃分特征。5.2.2.按最優(yōu)特征劃分數據集按特征"紅的":0,則分類:0;第二種為如果是紅的:1,則得到如下數據子集{圓的:1,分類:1;圓的:0,分類:0}接下來需要對數據子集{圓的:1,1;圓的:0,分類:0}繼續(xù)劃分。由于剩下一個特征,故按特征"圓的"劃分數據子集。劃分后,如果是圓的:1,則分類:1:0,則分類:0。返回的決策樹用字典表示為:{'紅的':{0:'類別0',1:{'圓的':{0:'類別0',1:'類別1'}}}}5.3.用C4.5決策樹進行分類為了讓讀者對ID3和C4.5C4.5決策樹進行分類。為了便于理解,仍然使用表格8所示數據集進行說明。5.3.1.C4.5決策樹選擇最優(yōu)特征表格8數據集的信息熵為:-1/5*log(1/5)-4/5*log(4/5)=0.2171.按特征"圓的"劃分數據集,則信息熵為:3/5*H(D1)+2/5*H(D0)=3/5*[-1/3*log(1/3)–2/3*log(2/3)]+2/5*[-2/2*log(2/2)]=0.166則信息增益為:0.217–0.166=0.051數據集關于特征"圓的"的取值的熵為:-3/5*log(3/5)–2/5*log(2/5)=0.29則信息增益比為0.051/0.29=0.1762.按特征"紅的"劃分數據集,則信息熵為:2/5*H(D1)+3/5*H(D0)=2/5*[-1/2*log(1/2)–1/2*log(1/2)]+3/5*[-3/3*log(3/3)]=0.120則信息增益為:0.217–0.120=0.097數據集關于特征"紅的"的取值的熵為:-2/5*log(2/5)–3/5*log(3/5)=0.29則信息增益比為0.097/0.29=0.334"紅的"比按特征"圓的""紅的"為最優(yōu)劃分特征。5.3.2.按最優(yōu)特征劃分數據集C4.5決策樹按最優(yōu)特征劃分數據集方法與上節(jié)ID3決策樹方法相同。6.分類回歸樹基本原理在上節(jié)中,主要介紹了ID3和C4.5決策樹。它們利用信息增益和信息增益比劃分數據集。就導致了劃分過于迅速,從而影響分類結果。在這篇文章中將要介紹的CART(ClassificationAndRegressionTree)樹,即分類回歸樹利用二分策略,有效地避免了劃分過于迅速這一問題。而且二分策略可以直接處理連續(xù)型屬性值。CART征向量對應的分類結果,回歸問題輸出特征向量對應的預測值。分類樹和ID3C4.5決策樹相似,都用來處理分類問題。不同之處是劃分方法。分類樹利用基尼指數進行二分。如圖13所示就是一個分類樹。圖13分類樹示例圖14所示就是一個回歸樹,其中sxy以看出圖14利用切分點s將特征空間進行劃分,y是如何選擇切分點、如何利用切分點劃分數據集、如何預測y的取值。圖14回歸樹示例6.1.CART樹原理6.1.1.分類樹二分分點值的數據劃分為右子樹。基尼指數:同信息增益、信息增益比作用類似,不過基尼指數相對更快假設有N個類,樣本屬于第n類的概率為Pn,則基尼指數為:若數據集按特征A取值是否等于切分點值劃分為D1和D2AD的基尼指數為:6.1.2.回歸樹二分為左子樹,將特征值小于等于切分點值的數據劃分為右子樹。平方誤差為兩部分,則在特征A下,集合D的平方誤差為:6.2.用CART樹進行分類和回歸本節(jié)主要用示例數據詳細說明如何用CART樹進行分類和回歸。6.2.1.分類樹表格9示例數據集圓的紅的分類111100010000100選擇最優(yōu)特征按特征"圓的"=1劃分數據集,則Gini為:3/5*Gini(D1)+2/5*Gini(D0)=3/5*[1/3*2/3+2/3*1/3]+2/5*[0]=0.266按特征"紅的"=1劃分數據集,則Gini為:2/5*Gini(D1)+3/5*Gini(D0)=2/5*[1/2*1/2+1/2*1/2]+3/5*[0]=0.2"紅的"比特征"圓的""紅的"=1為切分點。按最優(yōu)特征劃分數據集按特征"紅的":0,則分類:0;第二種為如果是紅的:1,則有如下數據子集{圓的:1,分類:1;圓的:0,分類:0}接下來需要對數據子集{圓的:1,1;圓的:0,分類:0}繼續(xù)劃分。由于剩下一個特征,故按特征"圓的"劃分數據集。劃分后,如果是圓的:1,則分類:1;如果是圓的:0,則分類:0。返回的決策樹為:{'紅的':{0:'類別0',1:{'圓的':{0:'類別0',1:'類別1'}}}}6.2.2.回歸樹表格10示例數據集面積/平米價格/萬2040.12140.33570.43670.2選擇最優(yōu)特征1.按特征"面積"=20劃分數據集,y1均值為40.1,y2均值為(40.3+70.4+70.2)/3=60.3,則平方誤差為:0+(40.3–60.3)2+(70.4–60.3)2+(70.2–60.3)2=600.022.按特征"面積"=21劃分數據集,則平方誤差為:y1均值為(40.1+40.3)/2=40.2,y2均值為(70.4+70.2)/2=70.3,則平方誤差為:(40.1–40.2)2+(40.3–40.2)2+(70.4–70.3)2+(70.2–70.3)2=0.043.3.按特征"面積"=35劃分數據集,則平方誤差為:y1均值為(40.1+40.3+70.4)/3=50.27,y2均值為70.2,則平方誤差為:(40.1–50.27)2+(40.3–50.27)2+(70.4–50.27)2+0=608.05"面積"=21比特征"面積"=20"面積"=35征"面積"=21為切分點。按最優(yōu)特征劃分數據集以特征"面積"=21為切分點,將數據切分為{面積=20,價格=40.1;面積=21,價格=40.3},{面積=35,價格=70.4;面積=36,價格=70.2}兩個子集。其中子集{面積=20,價格=40.1;面積=21,價格=40.3}的目標變量非常接近,故不繼續(xù)劃分,得葉節(jié)點值(40.1+40.3)/2=40.2;同理得子集{面積=35,價格=70.4;面積=36,價格=70.2}的葉節(jié)點值為(70.4+70.2)/2=70.3。7.Adaboost基本原理類在機器學習方向是應用最廣的方向之一。本文將要介紹的是分類模型中的另一種模型,AdaBoost(adaptiveboosting),即自適應提升算法。Boosting成起來,往往可以得到很好的效果。俗話說,"三個臭皮匠,頂個諸葛亮",就是這個道理。這類boosting算法的特點是各個弱分類器之間是串行訓練的,當前弱分類器的訓練依賴于上一輪弱分類器的訓練結果。各個弱分類器的權重是不同的,效果好的弱分類器的權重大,AdaBoost練回歸模型。這需要將弱分類器替換成回歸模型,并改動損失函數。本文將重點介紹用AdaBoost進行分類的算法原理。AdaBoost樣訓練的模型比單一設置模型的訓練精度高。當然,就如每一個算法都有自己的優(yōu)缺點一樣,AdaBoost也有自身的缺點。AdaBoost算法one-versus-rest的思想來訓練多分類模型。關于one-verus-rest的細節(jié)可以參考本系列第一篇文章SVM。為了讓讀者有一個感性的認識,在文章一開始先舉個AdaBoost訓練出來的強分類器的例子,G(x)中包含三個弱分類器f(x),g(x)和z(x)分別為0.80,0.69和0.71。G(x)=sign(0.80*f(x)+0.69*g(x)+0.71*z(x))7.1.AdaBoost原理AdaBoost上一輪迭代的樣本權重。具體過程如下:7.1.1.訓練當前迭代最優(yōu)弱分類器最優(yōu)弱分類器是錯誤率最小的那個弱分類器。錯誤率的計算公式是:其中m=1,2,..,Mm輪迭代。i代表第i個樣本。w是樣本權重。I指示函數取值為1或0II函數結果為1I函數括號中的表達式為假時,I函數結果為0。取錯誤率最低的弱分類器為當前迭代的最優(yōu)弱分類器。注意,第一輪迭代計算時樣本權重初始化為總樣本數分之一。7.1.2.計算最優(yōu)弱分類器的權重最優(yōu)弱分類器的權重只與該弱分類器的錯誤率有關。弱分類器的權重計算公式如下:可以看出,錯誤率越小,則alpha值越大,即該弱分類器的權重越高;反之,錯誤率越大,則alpha作用,并削弱精度低的弱分類器的作用。7.1.3.根據錯誤率更新樣本權重樣本權重的更新與當前樣本權重和弱分類器的權重有關。樣本權重更新公式如下:其中m=1,2,..,M,代表第m輪迭代。i代表第i個樣本。w是樣本權重。alpha是弱分類器y和Gmy和Gm而在下一輪迭代中得到重視。7.1.4.迭代終止條件不斷重復1,2,3率閾值或達到最大迭代次數。7.2.用例子解釋AdaBoost原理本節(jié)主要用示例數據詳細說明用上節(jié)介紹的AdaBoost原理進行分類的過程。本例用到的數據集如表1所示。為方便說明,本文所用弱分類器為形如x<1.5,則y=1,否則y=-1的簡單分類算法。熟悉了AdaBoost原理的讀者,可以使用其他分類算法作為弱分類器。如使用本系列上篇文章介紹的CART樹中的分類樹作為弱分類器,可訓練出提升分類樹模型。表格11示例數據集x012345y11-1-11-17.2.1.第一輪迭代1.a選擇最優(yōu)弱分類器第一輪迭代時,樣本權重初始化為(0.167,0.167,0.167,0.167,0.167,0.167)。表格11數據集的切分點有0.5,1.5,2.5,3.5,4.5。若按0.5切分數據,得弱分類器x<0.5,則y=1;x>0.5,則y=-1。此時錯誤率為2*0.167=0.334。若按1.5切分數據,得弱分類器x<1.5,則y=1;x>1.5,則y=-1。此時錯誤率為1*0.167=0.167。若按2.5切分數據,得弱分類器x<2.5,則y=1;x>2.5,則y=-1。此時錯誤率為2*0.167=0.334。若按3.5切分數據,得弱分類器x<3.5,則y=1;x>3.5,則y=-1。此時錯誤率為3*0.167=0.501。若按4.5切分數據,得弱分類器x<4.5,則y=1;x>4.5,則y=-1。此時錯誤率為2*0.167=0.334。由于按1.5劃分數據時錯誤率最小為0.167,則最優(yōu)弱分類器為x<1.5,則y=1;x>1.5,則y=-1。1.b計算最優(yōu)弱分類器的權重alpha=0.5*ln((1–0.167)/0.167)=0.80471.c更新樣本權重x=0,1,2,3,5時,y分類正確,則樣本權重為:0.167*exp(-0.8047)=0.075x=4時,y分類錯誤,則樣本權重為:0.167*exp(0.8047)=0.373新樣本權重總和為0.075*5+0.373=0.748規(guī)范化后,x=0,1,2,3,5時,樣本權重更新為:0.075/0.748=0.10x=4時,樣本權重更新為:0.373/0.748=0.50綜上,新的樣本權重為(0.1,0.1,0.1,0.1,0.5,0.1)。此時強分類器為G(x)=0.8047*G1(x)G1(x)為x<1.5,則y=1;x>1.5,則y=-1錯誤率為1/6=0.167。7.2.2.第二輪迭代2.a選擇最優(yōu)弱分類器若按0.5切分數據,得弱分類器x>0.5,則y=1;x<0.5,則y=-1。此時錯誤率為0.1*4=0.4。若按1.5切分數據,得弱分類器x<1.5,則y=1;x>1.5,則y=-1。此時錯誤率為1*0.5=0.5。若按2.5切分數據,得弱分類器x>2.5,則y=1;x<2.5,則y=-1。此時錯誤率為0.1*4=0.4。若按3.5切分數據,得弱分類器x>3.5,則y=1;x<3.5,則y=-1。此時錯誤率為0.1*3=0.3。若按4.5切分數據,得弱分類器x<4.5,則y=1;x>4.5,則y=-1。此時錯誤率為2*0.1=0.2。由于按4.5劃分數據時錯誤率最小為0.2x<4.5,則y=1;x>4.5,則y=-1。2.b計算最優(yōu)弱分類器的權重alpha=0.5*ln((1–0.2)/0.2)=0.6931。2.c更新樣本權重x=0,1,5時,y分類正確,則樣本權重為:0.1*exp(-0.6931)=0.05x=4時,y分類正確,則樣本權重為:0.5*exp(-0.6931)=0.25x=2,3時,y分類錯誤,則樣本權重為:0.1*exp(0.6931)=0.20新樣本權重總和為0.05*3+0.25+0.20*2=0.8規(guī)范化后,x=0,1,5時,樣本權重更新為:0.05/0.8=0.0625x=4時,樣本權重更新為:0.25/0.8=0.3125x=2,3時,樣本權重更新為:0.20/0.8=0.250綜上,新的樣本權重為(0.0625,0.0625,0.250,0.250,0.3125,0.0625)。此時強分類器為G(x)=0.8047*G1(x)+0.6931*G2(x)。G1(x)為x<1.5,則y=1;x>1.5,則y=-1。G2(x)為x<4.5,則y=1;x>4.5,則y=-1。按G(x)分類會使x=4分類錯誤,則強分類器的錯誤率為1/6=0.167。7.2.3.第三輪迭代3.a選擇最優(yōu)弱分類器若按0.5切分數據,得弱分類器x<0.5,則y=1;x>0.5,則y=-1。此時錯誤率為0.0625+0.3125=0.375。若按1.5x<1.5,則y=1;x>1.5,則y=-11*0.3125=0.3125。若按2.5切分數據,得弱分類器x>2.5,則y=1;x<2.5,則y=-1。此時錯誤率為0.0625*2+0.250+0.0625=0.4375。若按3.5x>3.5,則y=1;x<3.5,則y=-10.0625*3=0.1875。若按4.5切分數據,得弱分類器x<4.5,則y=1;x>4.5,則y=-1。此時錯誤率為2*0.25=0.5。由于按3.5劃分數據時錯誤率最小為0.1875x>3.5,則y=1;x<3.5,則y=-1。3.b計算最優(yōu)弱分類器的權重alpha=0.5*ln((1–0.1875)/0.1875)=0.73323.c更新樣本權重x=2,3時,y分類正確,則樣本權重為:0.25*exp(-0.7332)=0.1201x=4時,y分類正確,則樣本權重為:0.3125*exp(-0.7332)=0.1501x=0,1,5時,y分類錯誤,則樣本權重為:0.0625*exp(0.7332)=0.1301新樣本權重總和為0.1201*2+0.1501+0.1301*3=0.7806規(guī)范化后,x=2,3時,樣本權重更新為:0.1201/0.7806=0.1539x=4時,樣本權重更新為:0.1501/0.7806=0.1923x=0,1,5時,樣本權重更新為:0.1301/0.7806=0.1667綜上,新的樣本權重為(0.1667,0.1667,0.1539,0.1539,0.1923,0.1667)。此時強分類器為G(x)=0.8047*G1(x)+0.6931*G2(x)+0.7332*G3(x)。G1(x)為x<1.5,則y=1;x>1.5,則y=-1。G2(x)為x<4.5,則y=1;x>4.5,則y=-1。G3(x)為x>3.5,則y=1;x<3.5,則y=-1G(x)0/6=0終強分類器為G(x)=0.8047
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球溫濕度氣候試驗箱行業(yè)調研及趨勢分析報告
- 2025年全球及中國光學有機硅膠行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球電子母豬喂料器行業(yè)調研及趨勢分析報告
- 2025年全球及中國熟食冷藏展示柜行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 房屋地基買賣合同
- 2025合同模板出國勞務合同范本
- 2025房屋借款合同范本
- 2025北京市前期物業(yè)服務合同模板
- 剪輯師聘用合同資訊
- 提升殘疾人的信息獲取與溝通能力
- 關于市推動高新技術企業(yè)發(fā)展的調研報告
- 13J103-7《人造板材幕墻》
- 上海高考英語詞匯手冊列表
- PDCA提高患者自備口服藥物正確堅持服用落實率
- 上海石油化工股份有限公司6181乙二醇裝置爆炸事故調查報告
- 家譜人物簡介(優(yōu)選12篇)
- 品管部崗位職責20篇
- 2023年中智集團下屬中智股份公司招聘筆試題庫及答案解析
- GA 1409-2017警用服飾硬式肩章
- 小兒垂釣 (課件)(14張)
- 嘉吉樂恩貝1-FarLactation課件
評論
0/150
提交評論