機器學習簡明原理_第1頁
機器學習簡明原理_第2頁
機器學習簡明原理_第3頁
機器學習簡明原理_第4頁
機器學習簡明原理_第5頁
已閱讀5頁,還剩64頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、機器學習簡明原理講明:本文整理自IBM大數據學習文檔,原文作者:韓笑琳關于機器學習的簡介機器學習是從大量數據中學習出特定規律的算法。其中提到的規律有專門多種,比如分類、聚類、回歸、關聯分析等。分類確實是給定大量帶標簽的數據,計算出未知標簽樣本的標簽取值。如年齡 40 歲以上、工科、研究生以上學歷,這類人薪資水平是高收入;年齡 20-30 歲、文科、大專學歷,這類人的薪資水平是低收入;現有一位 23 歲大專文科人士,求該人的薪資水平是哪類?依照分類建模,就能夠明白那個人的薪資水平專門可能是低收入。聚類是將大量不帶標簽的數據依照距離聚攏成不同的簇,每一簇數據有共同的特征。如電信行業能夠依照用戶的月

2、長途電話分鐘數、上網時長、短信使用數、地理位置、月消費數,將所有用戶聚攏成有典型特征的簇,聚攏出的某簇特征可能是月長途電話分鐘數長、上網時刻長、地理位置變化不大、月消費數目低,分析可得這類人極有可能是在校大學生,那么電信公司就能夠針對這類特定人群制定有針對性的營銷策略。回歸是依照特征值、目標變量擬合出特征值與目標變量之間的函數關系,可用來可能特征值對應的目標變量的可能取值。舉個簡單的例子,某市今年某 100 平米的房子價格是 80 萬,某 150 平米房子價格是 120 萬,那么某 200 平米的房子價格的取值就可能是 200*0.8=160 萬左右。關聯分析是計算出大量數據之間的頻繁項集合。

3、如超市訂單中有大量訂單同時包含啤酒與尿布,這其中的頻繁項確實是啤酒和尿布,那么超市就能夠針對那個規律對啤酒和尿布進行組合促銷活動。分類算法要緊包括K近鄰、決策樹、樸素貝葉斯、邏輯回歸、支持向量機、AdaBoost等;回歸要緊包括線性回歸、嶺回歸、lasso、樹回歸等;聚類要緊包括 K-Means 以及它的各種變形算法;關聯分析要緊包括 Apriori、FP-growth 等算法。支持向量機即 support vector machine(簡稱 SVM),是機器學習領域經典的分類算法。關于 SVM 的簡介支持向量是距離分類超平面近的那些點,SVM的思想確實是使得支持向量到分類超平面的間隔最大化。

4、動身點專門容易理解,距離分類超平面近的那些點到該超平面的間隔最大化代表了該超平面對兩類數據的區分度強,不容易出現錯分的情況。如 REF _Ref519850741 h * MERGEFORMAT 圖 1所示,支持向量到超平面1的間隔大于支持向量到超平面2的間隔,因此超平面1優于超平面2。圖 SEQ 圖 * ARABIC 1 兩個超平面示例SVM 能夠專門好得解決二分類問題,關于多分類情況,就需要對模型進行改動。如 one-versus-rest 法,這種方法每次選擇一個類不作為正樣本,剩下其他類不作為負樣本,假設一共有3個類不,如此相當于訓練出了3個不同的SVM。然后將測試數據分不帶入3個SV

5、M模型中,得到的3個結果中的最大值則為最終的分類結果。支持向量到分類超平面的間隔最大化的思路專門完美,按這種思路得到的模型理論上是準確度最高的一種模型。然而使用過SVM的朋友都明白,調用SVM算法的測試準確度并不一定都專門高。這其中有專門多緣故,比如數據預處理的效果、訓練集的大小、特征值的選擇、參數設置以及核函數的選擇等因素。任何模型差不多上優點與缺點并存的。SVM的優點是:能夠解決線性不可分的情況。如 REF _Ref519850852 h 圖 2所示,兩類數據點全然無法用超平面分隔開;計算復雜度僅取決于少量支持向量,關于數據量大的數據集計算復雜度低。SVM 的缺點是:經典的 SVM 算法僅

6、支持二分類,關于多分類問題需要改動模型;不支持類不型數據,需在預處理時期將類不型數據轉換成離散型數據。類不型數據即男、 女這類由字符串表示某類信息的數據,需將這類數據轉換成離散型數據如 1、2。圖 SEQ 圖 * ARABIC 2 線性不可分問題SVM 差不多原理SVM原理分為軟間隔最大化、拉格朗日對偶、最優化問題求解、核函數、序列最小優化SMO等部分。盡管這些名詞看起來專門晦澀,然而深入探究后就會發覺其中的思想并沒有那么復雜。軟間隔最大化SVM的核心思路是最大化支持向量到分隔超平面的間隔。后面所有的推導差不多上以最大化此間隔為核心思想展開。一般的機器學習問題差不多上先得到模型的目標函數和約束

7、條件,然后在約束條件下對目標函數求得最優解。因此,我們下面首先需要推導出SVM模型的目標函數和約束條件。既然要最大化間隔,那么回憶下點x到超平面(w,b)的距離公式:其中超平面的公式為:由此可推出點 x 到超平面(w,b)的幾何間隔為: 其中 xi代表第i條數據,yi代表第i條數據對應的目標變量的取值,取值有+1 和-1 兩種。因此當第 i條數據被正確分類時,y 取值和 w*x+b 取值的正負一致,幾何間隔為正;當被錯誤分類時,y 取值和 w*x+b 取值的正負相反,幾何間隔為負。圖 SEQ 圖 * ARABIC 3 樣本數關于w*x + b的取值符號定義幾何間隔中最小的為:由此,能夠得到間隔

8、最大化問題的目標函數:并遵循如下約束條件: 做如下變換:則目標函數轉換為:相應的約束條件變為: 做如下變換:可得目標函數和約束條件變為: 由于 w, b 成倍數變化并可不能阻礙超平面的公式,因此:現在得到最終的間隔最大化的目標函數和約束條件如下:然而,到那個地點并沒有真正得結束。考慮到現實生活中的真實數據,存在一些特異點即 outliers,這些數據點并不滿足上面推導出的約束條件,如 REF _Ref519850779 h * MERGEFORMAT 圖 4所示,圖中點 A 確實是 outlier 特異點。圖 SEQ 圖 * ARABIC 4 Outlier特異點為了解決這種問題,對每個樣本點

9、引進一個松弛變量,使得約束條件變為:如此給 outlier 的約束條件加上一個變量,使其能夠滿足大于等于 1 的條件。則相應的目標變量變為:其中 C 為懲處參數,它的目的是使得目標變量最小即幾何間隔最大,且使得松弛變量最小化。加入松弛變量的目標函數確實是軟間隔最大化。拉格朗日對偶關于凸二次優化問題,通過引入拉格朗日乘子,將目標函數和約束條件整合到拉格朗日函數中,如此能方便求解最值問題。那么,對每個不等式約束引入拉格朗日乘子,得到拉格朗日函數如下:分析可知:則原最優化問題轉換成: 由于原最優化問題直接求解專門困難,利用拉格朗日對偶性,可通過求解原最優化問題的對偶問題得到原問題的最優解。原最優化問

10、題的對偶問題為:最優化問題求解到此為止,差不多將目標函數和約束條件轉換成了極大微小化拉格朗日函數的問題了。首先求解關于拉格朗日函數的微小化問題。對三個變量分不求偏導得: 將以上三式帶入拉格朗日函數中得:那么極大微小化拉格朗日函數轉換成:為求解方便,將極大轉換成微小得: 核函數關于線性不可分問題,如 REF _Ref519850852 h * MERGEFORMAT 圖 2所示,這類問題是無法用超平面劃分正負樣本數據的。倘若能將超平面換成超曲面,則能夠將正負樣本正確分類,如 REF _Ref519850927 h * MERGEFORMAT 圖 5所示。圖 SEQ 圖 * ARABIC 5 超曲

11、面分離正負樣本我們明白曲面的公式是:映射到新坐標如下:可將超曲面在新坐標下表示成超平面:也確實是將在二維空間(x1,x2)下線性不可分的問題轉換成了在五維空間(z1,z2,z3,z4,z5)下線性可分的問題。得映射后新坐標下的內積:有一核函數如下:可知 何為核函數?核函數在低維空間中完成了映射到高維空間后的內積運算。這點特不有用,利用核函數,無需先將變量一一映射到高維空間再計算內積,而是簡單得在低維空間中利用核函數完成這一操作。什么緣故講不用一一映射到高維空間專門有用呢?緣故就在于首先我們無法針對每種情況提供精確的映射函數,再者關于需要映射到無窮維的情況顯然無法一一映射完成。那么什么緣故是映射

12、到高維后的內積運算呢?這是因為在上節中我們得到了如下目標函數: 正是因為該目標函數中包含自變量的內積運算,而映射到高維空間后的內積運算又恰好能夠通過核函數在低維空間中直接求得,故而有了核函數的由來。較常用的核函數是高斯核,高斯核能夠將低維空間映射到無窮維。運用核函數后,最優化問題的目標函數和約束條件變為: 序列最小優化 (Sequential minimal optimization)到目前為止,優化問題差不多轉化成了一個包含 N 個 alpha 自變量的目標變量和兩個約束條件。由于目標變量中自變量 alpha 有 N 個,為了便與求解,每次選出一對自變量 alpha,然后求目標函數關于其中一

13、個 alpha 的偏導,如此就能夠得到這一對 alpha 的新值。給這一對 alpha 賦上新值,然后不斷重復選出下一對 alpha 并執行上述操作,直到達到最大迭代數或沒有任何自變量 alpha 再發生變化為止,這確實是 SMO 的差不多思想。講直白些,SMO 確實是在約束條件下對目標函數的優化求解算法。為何不能每次只選一個自變量進行優化?那是因為只選一個自變量 alpha 的話,會違反第一個約束條件,即所有 alpha 和 y 值乘積的和等于 0。下面是詳細的 SMO 過程。假設選出了兩個自變量分不是 alpha1 和 alpha2,除了這兩個自變量之外的其他自變量保持固定,則目標變量和約

14、束條件轉化為: 將約束條件中的 alpha1 用 alpha2 表示,并代入目標函數中,則將目標函數轉化成只包含 alpha2 的目標函數,讓該目標函數對 alpha2 的偏導等于 0: 可求得 alpha2 未經修剪的值: 之因此講 alpha2 是未經修剪的值是因為所有 alpha 都必須滿足大于等于 0 且小于等于 C 的約束條件,用此約束條件將 alpha2 進行修剪,修剪過程如下: 由此得: 分兩種情況討論:情況 1.當 y1 等于 y2 時,有: 情況 2.當 y1 不等于 y2 時,有:修剪后,可得 alpha2 的取值如下:由 alpha2 和 alpha1 的關系,可得:在完

15、成 alpha1 和 alpha2 的一輪更新后,需要同時更新 b 的值,當 alpha1 更新后的值滿足 0alpha1C 時,由 KKT 條件得:由于篇幅有限,在此就不把推導過程一一列舉,可得:同樣的道理,當 alpha2 更新后的值滿足 0alpha1 牛奶,該規則的置信度是 0.9,意味著在所有買了雞蛋和面包的客戶中,有 90%的客戶還買了牛奶。關聯規則能夠用來發覺專門多有味的規律。這其中需要先闡明兩個概念:支持度和置信度。支持度 Support支持度指某頻繁項集在整個數據集中的比例。假設數據集有 10 條記錄,包含雞蛋, 面包的有 5 條記錄,那么雞蛋, 面包的支持度確實是 5/10

16、 = 0.5。置信度 Confidence置信度是針對某個關聯規則定義的。有關聯規則如雞蛋, 面包 - 牛奶,它的置信度計算公式為雞蛋, 面包, 牛奶的支持度/雞蛋, 面包的支持度。假設雞蛋, 面包, 牛奶的支持度為 0.45,雞蛋, 面包的支持度為 0.5,則雞蛋, 面包 - 牛奶的置信度為 0.45 / 0.5 = 0.9。關聯規則用于發覺 if - then 如此的規則,并能夠給出這條規則的可信度(即置信度)。現實場景中能夠用來發覺專門多規律,下面舉個例子。在信息安全領域,需要依照已有流量數據制定規則,來推斷是否觸發安全報警。如規則數據包大,多個ip地址同時發送數據 - 異常,該規則的置

17、信度為 0.85。這條規則表示,當流量數據包大,并有多個ip地址同時向目標ip發送數據時,則有 85%的概率存在異常,需要觸發報警。頻繁項集挖掘原理頻繁項集挖掘分為構建 FP 樹,和從 FP 樹中挖掘頻繁項集兩步。本節用如下表所示的數據集作為例子展開,該示例數據集共四條數據。表格 SEQ 表格 * ARABIC 1 示例數據集數據集a,b,cc,d,b,ad,e,ab,a構建 FP 樹構建 FP 樹時,首先統計數據集中各個元素出現的頻數,將頻數小于最小支持度的元素刪除,然后將數據集中的各條記錄按出現頻數排序,剩下的這些元素稱為頻繁項;接著,用更新后的數據集中的每條記錄構建 FP 樹,同時更新頭

18、指針表。頭指針表包含所有頻繁項及它們的頻數,還有每個頻繁項指向下一個相同元素的指針,該指針要緊在挖掘 FP 樹時使用。下面用上文提到的數據集展開講明,假設最小支持度為 2。首先,統計數據集中各元素出現的次數,得 a 出現 4 次, b 出現 3 次, c 出現 2 次, d 出現 2 次, e 出現 1 次。接著,將出現次數小于最小支持度 2 的元素(即 e)在數據集中刪除,并將數據集按出現次數由高到低排序,得 REF _Ref519851008 h * MERGEFORMAT 表格 2。表格 SEQ 表格 * ARABIC 2 示例數據集數據集a,b,ca,b,c,da,da,b然后,用更新

19、后的數據集中的記錄創建 FP 樹,并同時更新頭指針表。創建 FP 樹時,當待添加的記錄與 FP 樹中的路徑相同,則只需更新元素對應的頻數;假如待添加的記錄與 FP 樹存在不一致,則在不一致的地點分叉,創建新的結點。如 REF _Ref519851068 h * MERGEFORMAT 圖 6 REF _Ref519851073 h * MERGEFORMAT 圖 9所示。注意,FP 樹的根節點是 null。圖 SEQ 圖 * ARABIC 6 向FP樹添加第一條記錄 a,b,c 圖 SEQ 圖 * ARABIC 7向FP樹添加第二條記錄 a,b,c,d 圖 SEQ 圖 * ARABIC 8向F

20、P樹添加第三條記錄 a ,d 圖 SEQ 圖 * ARABIC 9向FP樹添加第四條記錄 a ,b 挖掘頻繁項集得到 FP 樹后,需要對每一個頻繁項,逐個挖掘頻繁項集。具體過程為:首先獲得頻繁項的前綴路徑,然后將前綴路徑作為新的數據集,以此構建前綴路徑的條件 FP 樹。然后對條件 FP 樹中的每個頻繁項,獲得前綴路徑并以此構建新的條件 FP 樹。不斷迭代,直到條件 FP 樹中只包含一個頻繁項為止。下面以元素 c 為例,從上文 REF _Ref519851073 h * MERGEFORMAT 圖 9創建好的 FP 樹中挖掘頻繁項集。首先,獲得以 c 元素的前綴路徑a:2,b:2,注意此處 a

21、和 b 的頻數為 2 是因為 c 的頻數為 2,因此與 c 共同出現的 a 和 b 的頻數就都為 2。接著,創建條件 FP 樹,具體的創建過程和上一節創建 FP 樹的過程一樣,如 REF _Ref519851137 h * MERGEFORMAT 圖 10所示。圖 SEQ 圖 * ARABIC 10 c元素的前綴路徑構成的條件 FP 樹注意現在頭指針表中包含兩個元素,因此對每個元素,需要獲得前綴路徑,并將前綴路徑創建成條件 FP 樹,直到條件 FP 樹中只包含一個元素時返回。對元素 a,獲得前綴路徑為 ,則頻繁項集返回c,a;對元素 b,獲得前綴路徑a,則將前綴路徑創建成條件 FP 樹,如 R

22、EF _Ref519851168 h * MERGEFORMAT 圖 11所示。注意現在條件 FP 樹中只包含一個元素,故返回頻繁項集c,b,a。由于元素 b 也是頻繁項,因此c,b也是頻繁項集。再加上c本身確實是頻繁項集,因此 c 對應的頻繁項集有:c c,a c,b c,b,a。圖 SEQ 圖 * ARABIC 11 b元素的前綴路徑構成的條件FP樹將其他元素 a,b,d 同樣按照上述對 c 的操作,得到 REF _Ref519851195 h * MERGEFORMAT 表格 3所示頻繁項集。表格 SEQ 表格 * ARABIC 3 元素a,b,c,d對應的頻繁項集元素頻繁項集a a b

23、 b b,a c c c,a c,b c,b,a d d d,a 關聯規則挖掘原理關聯規則挖掘首先需要對上文得到的頻繁項集構建所有可能的規則,然后對每條規則逐個計算置信度,輸出置信度大于最小置信度的所有規則。以頻繁項集a,b,c為例,構建所有可能的規則:b,c - a, a,c - b,a,b - c,c - a,b,b - a,c,a - b,c。對每條規則計算置信度后,輸出滿足要求的規則即可。NaiveBayes差不多原理樸素貝葉斯模型要緊用來分類,然而與 SVM 模型不同的的是,樸素貝葉斯模型不需要針對目標變量建立模型,而是借助貝葉斯公式計算樣本屬于各個類不的概率,然后取概率值大的類不作

24、為分類類不。之因此稱之為樸素,是因為樸素貝葉斯模型假設各屬性之間是條件獨立的,該假設極大得簡化了運算,使得樸素貝葉斯模型變得特不簡單。樸素貝葉斯模型要緊應用在文本分類方面。那個地點需要用到向量空間模型,立即文本轉換成詞向量。詞向量的每一項是該詞出現的頻數。在樸素貝葉斯中會將頻數進一步轉換成頻率。如此就完成了文本到數值上的轉化,方便后期計算條件概率和先驗概率。樸素貝葉斯模型也有它的優缺點,優點是模型簡單,計算快;缺點是依靠于屬性之間條件獨立這一假設,然而現實場景下專門多情況并不滿足這一假設,使得樸素貝葉斯的準確率受到阻礙。這種情況需要考慮半樸素貝葉斯,即放松屬性之間條件獨立這一假設,一定程度上考

25、慮屬性之間的依靠關系。由于篇幅有限,對半樸素貝葉斯感興趣的話可自行參照文末參考資源學習,本文重點介紹樸素貝葉斯的原理和實現。樸素貝葉斯原理樸素貝葉斯模型要緊利用貝葉斯公式進行展開。貝葉斯公式如下:公式中 P(C|X)表示 X 屬于類不 C 的概率,P(X|C)表示類不 C 中 X 出現的概率,P(C)表示類不 C 出現的概率。其中 P(C)稱為先驗概率,P(X|C)是條件概率,P(C|X)稱為后驗概率,將后驗概率最大的類作為 X 的類不輸出。假設有 C0 和 C1 兩個類,由于 P(X)差不多上一樣的,因此不需要考慮 P(X),只需考慮如下:假如P(X|C0) *P(C0) P(X|C1) *

26、P(C1),則 P(C0|X) P(C1|X),可得 X 屬于 C0 類;假如P(X|C0) *P(C0) P(X|C1) *P(C1),則 P(C0|X) 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) -2.84, 因此 log(P(X|C1) *P(C1) ) log(P(X|C0) *P(C0) ), 即 P(C1|X) P(C0|X),可得測試文本book, campus, study屬于類不 1。決策樹差不多原理決策樹

27、算法又分專門多種,常用的有ID3,C4.5 和 CART 決策樹。其中ID3和C4.5決策樹更傾向于處理類不型的離散屬性值,關于連續型屬性值,則需要額外利用連續屬性離散化技術將其劃分成離散型屬性值。而CART決策樹,即分類回歸樹,直接支持連續型屬性值。由于篇幅限制CART樹會放在下一篇文章進行介紹,本文要緊詳細介紹 ID3 和 C4.5 決策樹。決策樹利用了樹型結構進行決策,是經典的 if-then 結構。葉節點存儲類不,內部節點代表特征或屬性。注意本文中提到的特征和屬性是同一個概念。為了讓讀者有一個感性的認識,請看 REF _Ref520122910 h * MERGEFORMAT 圖 12

28、所示決策樹。圖 SEQ 圖 * ARABIC 12 決策樹示例圖1所示決策樹用來將數據分為兩類,是蘋果和非蘋果。如圖中所示,圓的和紅的,確實是蘋果。不圓的不是蘋果。圓的但不紅的不是蘋果。本文將著重介紹ID3和C4.5兩種決策樹。決策樹需要選擇最優特征劃分數據集。這兩種決策樹的不同之處是劃分數據集的最優特征選擇方法不同。用最優特征劃分數據會使得數據集趨于更純,即數據集的類不數更單一,如此的數據會更有序。衡量數據的混亂程度就必須提到信息和信息熵的概念。待分類的事物可能劃分在多個類不中,則符號 Xi 的信息是:可知P(Xi) 越大,則 I(Xi) 越小,即Xi的概率越大,則Xi包含的信息越少。我們都

29、明白物理中的熵用來衡量混亂程度,熵越大講明越混亂,熵越小講明越單一。同樣,信息熵用來衡量信息中的混亂程度。用所有類不所有可能值包含的信息期望值表示信息熵,計算方法如下:ID3 決策樹利用了信息增益來選擇最優特征,用這種方法選擇的特征是使得信息熵增益最大的特征。而 C4.5決策樹利用了信息增益比來選擇最優特征。用這種方法選擇的特征是使得信息增益比最大的特征。什么緣故要提出信息增益比呢?這是因為只考慮信息增益來劃分數據集是有缺陷的。這種缺陷體現在信息增益對選擇屬性取值多的特征更有利。因為按屬性取值多的特征劃分數據集后,劃分后的各個子數據集的類不更單一,即更趨于有序,這就使得劃分后的信息熵更小,那么

30、信息增益就會更大。信息增益比能夠專門好的解決那個問題。信息增益比通過引入類似懲處因子的概念,對屬性取值多的特征會有一定懲處。決策樹原理選擇最優特征決策樹通過不斷選擇最優特征劃分數據集,對劃分后的子數據集不斷迭代得選擇最優特征劃分,直到所有的數據集屬于同一個類不,或者沒有特征能夠選擇為止。選擇最優特征的算法有專門多種,ID3 決策樹用信息增益選擇最優特征,C4.5 決策樹用信息增益比選擇最優特征。信息增益-用于ID3決策樹信息增益,顧名思義確實是原數據集的信息熵比劃分后數據集的信息熵大的程度。信息增益越大,講明劃分后的數據集信息熵更小,即該數據集類不更趨于一致。特征 A 對數據集 D 的信息增益

31、 g(D,A)為 D 的信息熵與按特征 A 進行劃分后 D 的信息熵之差,即其中, 信息增益比 用于 C4.5 決策樹信息增益比為了幸免傾向于選擇屬性值多的特征作為最優特征那個問題,在信息增益的基礎上引入了類似懲處因子的概念。特征 A 對數據集 D 的信息增益比gg(D,A)為信息增益 g(D,A) 與數據集 D 關于特征 A 的取值的熵 HA(D) 的比值,即其中,其中,n 是特征 A 取值的個數。HA(D) 就類似懲處因子,關于屬性值多的特征,盡管信息增益 g(D,A) 會比較大,然而數據集 D 關于特征 A 的取值的熵 HA(D) 會比較大,因而兩者的比值信息增益比 gg(D,A) 會比

32、較小。除了能夠使用信息增益和信息增益比來選擇最優劃分特征之外,基尼指數也能夠用來實現那個目的。基尼指數要緊用于 CART 樹(即分類回歸樹)的分類樹中的特征選擇。關于基尼指數的詳細內容會在下一篇文章介紹。用 ID3 決策樹進行分類本節要緊介紹用 ID3 決策樹進行分類。為了便于理解,用表1所示數據集進行詳細講明。利用 C4.5 決策樹進行分類的過程會在下節介紹。表格 SEQ 表格 * ARABIC 8 示例數據集圓的紅的分類111100010000100ID3決策樹選擇最優特征 REF _Ref520123803 h * MERGEFORMAT 表格 8數據集的信息熵為:-1/5 * log(

33、1/5) - 4/5 * log(4/5) = 0.217按特征圓的劃分數據集,則信息熵為: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按特征紅的劃分數據集,則信息熵為: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.0

34、97綜上所述,由于按特征紅的比按特征圓的劃分的信息增益大,因此特征紅的為最優劃分特征。按最優特征劃分數據集按特征紅的劃分數據集后,有兩種情況,第一種為假如是紅的:0,則分類:0; 第二種為假如是紅的:1, 則得到如下數據子集 圓的:1,分類:1; 圓的:0, 分類:0接下來需要對數據子集圓的:1,分類:1; 圓的:0, 分類:0接著劃分。由于剩下一個特征,故按特征圓的劃分數據子集。劃分后,假如是圓的:1,則分類:1;假如是圓的:0, 則分類:0。返回的決策樹用字典表示為:紅的: 0: 類不0, 1: 圓的: 0: 類不0, 1: 類不1用 C4.5 決策樹進行分類為了讓讀者對 ID3 和 C4

35、.5 決策樹的不同之處有更好的理解,本節介紹用 C4.5 決策樹進行分類。為了便于理解,仍然使用 REF _Ref520123803 h * MERGEFORMAT 表格 8所示數據集進行講明。C4.5 決策樹選擇最優特征 REF _Ref520123803 h * MERGEFORMAT 表格 8數據集的信息熵為:-1/5 * log(1/5) - 4/5 * log(4/5) = 0.217按特征圓的劃分數據集,則信息熵為: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

36、/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.176按特征紅的劃分數據集,則信息熵為: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

37、.29則信息增益比為 0.097 / 0.29 = 0.334綜上所述,由于按特征紅的比按特征圓的劃分的信息增益比大,因此特征紅的為最優劃分特征。按最優特征劃分數據集C4.5 決策樹按最優特征劃分數據集方法與上節 ID3 決策樹方法相同。分類回歸樹差不多原理在上節中,要緊介紹了 ID3 和 C4.5 決策樹。它們利用信息增益和信息增益比劃分數據集。然而這兩種決策樹是有缺陷的,即按某特征劃分后,該特征將可不能在后面的劃分中出現。這就導致了劃分過于迅速,從而阻礙分類結果。在這篇文章中將要介紹的CART(Classification And Regression Tree)樹,即分類回歸樹利用二分策

38、略,有效地幸免了劃分過于迅速這一問題。而且二分策略能夠直接處理連續型屬性值。CART樹(分類回歸樹)分為分類樹和回歸樹。顧名思義,分類樹用于處理分類問題;回歸樹用來處理回歸問題。我們明白分類和回歸是機器學習領域兩個重要的方向。分類問題輸出特征向量對應的分類結果,回歸問題輸出特征向量對應的預測值。分類樹和 ID3、C4.5決策樹相似,都用來處理分類問題。不同之處是劃分方法。分類樹利用基尼指數進行二分。如 REF _Ref520124355 h * MERGEFORMAT 圖 13所示確實是一個分類樹。圖 SEQ 圖 * ARABIC 13 分類樹示例回歸樹用來處理回歸問題。回歸將已知數據進行擬合

39、,關于目標變量未知的數據能夠預測目標變量的值。如 REF _Ref520124422 h * MERGEFORMAT 圖 14所示確實是一個回歸樹,其中 s 是切分點,x 是特征,y 是目標變量。能夠看出 REF _Ref520124422 h * MERGEFORMAT 圖 14利用切分點s將特征空間進行劃分,y是在劃分單元上的輸出值。回歸樹的關鍵是如何選擇切分點、如何利用切分點劃分數據集、如何預測y的取值。圖 SEQ 圖 * ARABIC 14 回歸樹示例CART 樹原理分類樹二分分類樹利用二分劃分數據。將特征值等于切分點值的數據劃分為左子樹,將特征值不等于切分點值的數據劃分為右子樹。基尼

40、指數:同信息增益、信息增益比作用類似,只是基尼指數相對更快假設有 N 個類,樣本屬于第 n 類的概率為Pn,則基尼指數為:若數據集按特征A取值是否等于切分點值劃分為D1和D2兩部分,則在特征A下,集合D的基尼指數為:回歸樹二分回歸樹也利用二分劃分數據。與分類樹不同的是,回歸樹將特征值大于切分點值的數據劃分為左子樹,將特征值小于等于切分點值的數據劃分為右子樹。平方誤差不同于分類樹,回歸樹用平方誤差選擇切分點。若數據集按特征取值是否大于切分點值劃分為兩部分,則在特征A下,集合D的平方誤差為:用 CART 樹進行分類和回歸本節要緊用示例數據詳細講明如何用 CART 樹進行分類和回歸。分類樹表格 SE

41、Q 表格 * ARABIC 9 示例數據集圓的紅的分類111100010000100選擇最優特征按特征圓的 = 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 為切分點。按最優特征劃分數據集按特

42、征紅的劃分數據集后,有兩種情況,第一種為假如是紅的:0,則分類:0; 第二種為假如是紅的:1, 則有如下數據子集 圓的:1,分類:1; 圓的:0, 分類:0接下來需要對數據子集圓的:1,分類:1; 圓的:0, 分類:0接著劃分。由于剩下一個特征,故按特征圓的劃分數據集。劃分后,假如是圓的:1,則分類:1;假如是圓的:0, 則分類:0。返回的決策樹為:紅的: 0: 類不 0, 1: 圓的: 0: 類不 0, 1: 類不 1回歸樹表格 SEQ 表格 * ARABIC 10 示例數據集面積/平米價格/萬2040.12140.33570.43670.2選擇最優特征按特征面積 = 20 劃分數據集,y1

43、 均值為 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.02按特征面積 = 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.按特征面積 = 35 劃分數據集,則平方誤差為:y1 均值為(40.1 + 40

44、.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 為切分點。按最優特征劃分數據集以特征面積 = 21 為切分點,將數據切分為面積 = 20,價格 = 40.1; 面積 = 21, 價格 = 40.3, 面積 = 35,價格 = 70.4; 面積 = 36, 價格 = 70.2兩個子集。其中子集面積 = 20,價格 = 40.1; 面積 =

45、21, 價格 = 40.3的目標變量特不接近,故不接著劃分,得葉節點值(40.1 + 40.3) / 2 = 40.2; 同理得子集面積 = 35,價格 = 70.4; 面積 = 36, 價格 = 70.2的葉節點值為 (70.4 + 70.2) / 2 = 70.3。Adaboost差不多原理前面內容涵蓋了分類、回歸、關聯分析等諸多模型,其中分類模型被介紹得最多。緣故是分類在機器學習方向是應用最廣的方向之一。本文將要介紹的是分類模型中的另一種模型,AdaBoost(adaptive boosting),即自適應提升算法。Boosting 是一類算法的總稱,這類算法的特點是通過訓練若干弱分類器

46、,然后將弱分類器組合成強分類器進行分類。什么緣故要如此做呢?因為弱分類器訓練起來專門容易,將弱分類器集成起來,往往能夠得到專門好的效果。俗話講,三個臭皮匠,頂個諸葛亮,確實是那個道理。這類 boosting 算法的特點是各個弱分類器之間是串行訓練的,當前弱分類器的訓練依靠于上一輪弱分類器的訓練結果。各個弱分類器的權重是不同的,效果好的弱分類器的權重大,效果差的弱分類器的權重小。值得注意的是,AdaBoost 不止適用于分類模型,也能夠用來訓練回歸模型。這需要將弱分類器替換成回歸模型,并改動損失函數。本文將重點介紹用 AdaBoost 進行分類的算法原理。AdaBoost 算法有其獨特的優點,那

47、確實是能夠將不同的分類算法組合起來,形成強分類器。這就能夠充分利用不同分類算法的優勢進行建模。也能夠將同一算法的不同設置進行組合,如此訓練的模型比單一設置模型的訓練精度高。因此,就如每一個算法都有自己的優缺點一樣,AdaBoost 也有自身的缺點。AdaBoost 算法只直接支持二分類,遇到多分類的情況,需要借助 one-versus-rest 的思想來訓練多分類模型。關于 one-verus-rest 的細節能夠參考本系列第一篇文章 SVM。為了讓讀者有一個感性的認識,在文章一開始先舉個 AdaBoost 訓練出來的強分類器的例子,如下所示,強分類器 G(x)中包含三個弱分類器 f(x),

48、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) )AdaBoost原理AdaBoost 的核心確實是不斷迭代訓練弱分類器,并計算弱分類器的權重。需要注意的是,弱分類器的訓練依靠于樣本權重。每一輪迭代的樣本權重都不相同,依靠于弱分類器的權重值和上一輪迭代的樣本權重。具體過程如下:訓練當前迭代最優弱分類器最優弱分類器是錯誤率最小的那個弱分類器。錯誤率的計算公式是:其中m = 1,2,.,M,代表第m輪迭代。i代表第i個樣本。w 是樣本權重。I指示函數取值為

49、1或0,當I指示函數括號中的表達式為真時,I 函數結果為1;當I函數括號中的表達式為假時,I 函數結果為0。取錯誤率最低的弱分類器為當前迭代的最優弱分類器。注意,第一輪迭代計算時樣本權重初始化為總樣本數分之一。計算最優弱分類器的權重最優弱分類器的權重只與該弱分類器的錯誤率有關。弱分類器的權重計算公式如下:能夠看出,錯誤率越小,則 alpha 值越大,即該弱分類器的權重越高;反之,錯誤率越大,則 alpha 值越小,則該弱分類器的權重越小。如此能夠使分類精度高的弱分類器起到更大的作用,并削弱精度低的弱分類器的作用。依照錯誤率更新樣本權重樣本權重的更新與當前樣本權重和弱分類器的權重有關。樣本權重更

50、新公式如下:其中m = 1,2,.,M,代表第 m 輪迭代。i代表第i個樣本。w 是樣本權重。alpha 是弱分類器的權重。當樣本被正確分類時,y 和 Gm 取值一致,則新樣本權重變小;當樣本被錯誤分類時,y 和 Gm 取值不一致,則新樣本權重變大。如此處理,能夠使被錯誤分類的樣本權重變大,從而在下一輪迭代中得到重視。迭代終止條件不斷重復1,2,3步驟,直到達到終止條件為止。終止條件是強分類器的錯誤率低于最低錯誤率閾值或達到最大迭代次數。用例子解釋 AdaBoost 原理本節要緊用示例數據詳細講明用上節介紹的 AdaBoost 原理進行分類的過程。本例用到的數據集如表1所示。為方便講明,本文所

51、用弱分類器為形如x1.5,則y=1,否則y=-1的簡單分類算法。熟悉了 AdaBoost 原理的讀者,能夠使用其他分類算法作為弱分類器。如使用本系列上篇文章介紹的 CART 樹中的分類樹作為弱分類器,可訓練出提升分類樹模型。表格 SEQ 表格 * ARABIC 11 示例數據集x012345y11-1-11-1第一輪迭代1.a 選擇最優弱分類器第一輪迭代時,樣本權重初始化為(0.167, 0.167, 0.167, 0.167, 0.167, 0.167)。 REF _Ref520125828 h * MERGEFORMAT 表格 11數據集的切分點有0.5, 1.5, 2.5, 3.5, 4

52、.5。若按0.5切分數據,得弱分類器x 0.5, 則 y = -1。現在錯誤率為2 * 0.167 = 0.334。若按1.5切分數據,得弱分類器x 1.5, 則 y = -1。現在錯誤率為1 * 0.167 = 0.167。若按2.5切分數據,得弱分類器x 2.5, 則 y = -1。現在錯誤率為2 * 0.167 = 0.334。若按3.5切分數據,得弱分類器x 3.5, 則 y = -1。現在錯誤率為3 * 0.167 = 0.501。若按4.5切分數據,得弱分類器x 4.5, 則 y = -1。現在錯誤率為2 * 0.167 = 0.334。由于按1.5劃分數據時錯誤率最小為0.167

53、,則最優弱分類器為x 1.5, 則 y = -1。1.b 計算最優弱分類器的權重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規范化后,x = 0, 1, 2, 3, 5時,樣本權重更新為:0.075 / 0.748 = 0.10 x = 4時, 樣本權重更新

54、為: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。則強分類器的錯誤率為1 / 6 = 0.167。第二輪迭代2.a 選擇最優弱分類器若按0.5切分數據,得弱分類器x 0.5,則 y = 1; x 0.5, 則 y = -1。現在錯誤率為0.1 * 4 = 0.4。若按1.5切分數據,得弱分類器x 1.5, 則 y = -1。現在錯誤率為1 * 0.5 = 0.5。若按2.5切分數據,得弱分類器x 2.5,則 y = 1

55、; x 3.5,則 y = 1; x 3.5, 則 y = -1。現在錯誤率為0.1 * 3 = 0.3。若按4.5切分數據,得弱分類器x 4.5, 則 y = -1。現在錯誤率為2 * 0.1 = 0.2。由于按4.5劃分數據時錯誤率最小為0.2,則最優弱分類器為x 4.5, 則 y = -1。2.b 計算最優弱分類器的權重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.6

56、931) = 0.25x = 2,3時,y分類錯誤,則樣本權重為:0.1 * exp(0.6931) = 0.20新樣本權重總和為 0.05 * 3 + 0.25 + 0.20 * 2 = 0.8規范化后,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)

57、 + 0.6931 * G2(x)。G1(x)為x 1.5, 則 y = -1。G2(x)為x 4.5, 則 y = -1。按G(x)分類會使x=4分類錯誤,則強分類器的錯誤率為1 / 6 = 0.167。第三輪迭代3.a 選擇最優弱分類器若按0.5切分數據,得弱分類器x 0.5, 則 y = -1。現在錯誤率為0.0625 + 0.3125 = 0.375。若按1.5切分數據,得弱分類器x 1.5, 則 y = -1。現在錯誤率為1 * 0.3125 = 0.3125。若按2.5切分數據,得弱分類器x 2.5,則 y = 1; x 3.5,則 y = 1; x 3.5, 則 y = -1。現

58、在錯誤率為0.0625 * 3 = 0.1875。若按4.5切分數據,得弱分類器x 4.5, 則 y = -1。現在錯誤率為2 * 0.25 = 0.5。由于按3.5劃分數據時錯誤率最小為0.1875,則最優弱分類器為x 3.5,則 y = 1; x 3.5, 則 y = -1。3.b 計算最優弱分類器的權重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.73

59、32) = 0.1501x = 0, 1, 5時,y分類錯誤,則樣本權重為:0.0625 * exp(0.7332) = 0.1301新樣本權重總和為 0.1201 * 2 + 0.1501 + 0.1301 * 3 = 0.7806規范化后,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,

60、 0.1667)。現在強分類器為G(x) = 0.8047 * G1(x) + 0.6931 * G2(x) + 0.7332 * G3(x)。G1(x)為x 1.5, 則 y = -1。G2(x)為x 4.5, 則 y = -1。G3(x)為x 3.5,則 y = 1; x 3.5, 則 y = -1。按G(x)分類所有樣本均分類正確,則強分類器的錯誤率為0 / 6 = 0。則停止迭代,最終強分類器為G(x) = 0.8047 * G1(x) + 0.6931 * G2(x) + 0.7332 * G3(x)。高斯混合模型差不多原理高斯混合簡介在本系列的前六篇中,筆者分不介紹了分類,關聯規則

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論