【Machine Learning】從零開始,了解監(jiān)督學(xué)習(xí)的方法


目錄###

1. 概念學(xué)習(xí) (concept learning)
2. 變形空間搜索 (Version space search)
3. 決策樹 (Decision tree)


1. 概念學(xué)習(xí)

1.1 一種常見的學(xué)習(xí)方法 -- 泛化(generalization)

  • 泛化的定義
  • 從集合的角度:表達(dá)式P比表達(dá)式Q更泛化,當(dāng)且僅當(dāng)P ? Q
  • 比如我們可以將
    排球,籃球,足球 ==(泛化為)==>球類或者運(yùn)動(dòng)
  • 機(jī)器學(xué)習(xí)中主要的泛化操作有:
  • 變量替換常量
  • 從合取表達(dá)式中去掉一些條件
  • 對(duì)表達(dá)式增加一個(gè)析取式
  • 用屬性的超類替換屬性

1.2 通過泛化進(jìn)行概念學(xué)習(xí)

  • 什么是覆蓋(covering)?
    如果說概念P比概念q更泛化,我們就說p覆蓋q

  • 概念空間(concept space)的定義

  • 概念空間是一些潛在的概念集合

  • 潛在概念(potential concept / candidate concept)是由泛化、特化等學(xué)習(xí)方法產(chǎn)生的
    下圖就是一個(gè)擁有如下屬性和值的object的概念空間
    Size = {small, large}
    Color = {red, white, blue}
    Shape = {ball, brick, cube}

概念空間

從下至上是一個(gè)泛化的過程,比如Obj(X, Y, ball)就可以覆蓋Obj(X, red, ball)和Obj(small, X, ball)等等,這也是通過泛化就行概念學(xué)習(xí)的體現(xiàn)。


2. 變形空間搜索

Version space search (Mitchell 1978, 1979, 1982) illustrates the implementation of inductive learning as search through a concept space.

說白了就是從訓(xùn)練實(shí)例可以生成一個(gè)概念空間,比如上圖。然后再?gòu)母拍羁臻g中搜索一個(gè)能覆蓋所有概念的概念。 比如上圖的Obj(X, Y, Z)。

2.1 變形空間(version space)的定義

2.2 三種搜索概念空間的算法

特殊到一般 (specific to general)
一般到特殊 (general to specific)
候選解排除 (candidate elimination)
  • 這些算法依賴于變形空間的概念,在有更多實(shí)例時(shí),可以縮減變形空間的大小。
  • 目標(biāo):學(xué)習(xí)到的概念不僅足以覆蓋所有正例,而且能排除所有的反例。上面講的Obj(X, Y, Z)雖然可以覆蓋所有正例,但可能太泛化了。
  • 避免超泛化(overgeneralization)的方法:
    • 采用盡可能小得泛化,使之只覆蓋正例
    • 用反例排除超泛化了得概念


      反例在防止超泛化中的作用
2.2.1 特殊到一般
  • 維護(hù)一個(gè)假設(shè)集S (即候選概念定義集)
  • 最特殊的泛化(Maximally specific generalization)
    一個(gè)概念c是最特殊的,如果:
    ① 覆蓋所有正例,而不覆蓋反例
    ② 對(duì)于所有其他覆蓋正例的概念c', c ≤ c'
由特殊到一般的搜索
2.2.2 一般到特殊
  • 維護(hù)一個(gè)假設(shè)集G(即候選概念集合)
  • 最一般概念(Maximally general concept)
    一個(gè)概念c是最一般的,如果:
    ① 覆蓋所有正例,而不覆蓋反例
    ② 對(duì)于任意其他不覆蓋反例的概念c', c ≥ c'

下圖的背景為:
size = {large, small}
color = {red, white, blue}
shape = {ball, brick, cube}
所以由第一個(gè)反例我們可以特化出:
size不能是small => obj(large, Y, Z)
color不能是red => obj(X, white, Z) 和 obj(X, blue, Z)
shape不能是brick =>obj(X, Y, ball) 和 obj(X, Y, cube)

由一般到特殊的搜索
2.2.3 候選解排除
  • 候選解排除法綜合上面兩種辦法,雙向搜索
  • 維護(hù)兩個(gè)候選概念集合S和G
  • 算法特化G并泛化S直到它們收斂在目標(biāo)概念上
Screenshot at May 04 00-40-53.png

2.3 評(píng)估候選解排除算法

2.3.1 優(yōu)點(diǎn)
  • 候選解排除算法是增量式的(incremental),所以不同于其他的算法需要在學(xué)習(xí)之前給出所有訓(xùn)練實(shí)例
2.3.2 缺點(diǎn)
  • 像其他搜索問題一樣,基于搜索的學(xué)習(xí)必須處理問題空間的合并問題
  • 候選解排除算法是不能有噪聲(noise)的

3. 決策樹

3.1 什么是決策樹?

機(jī)器學(xué)習(xí)中,決策樹是一個(gè)預(yù)測(cè)模型;他代表的是對(duì)象屬性(property)與對(duì)象值(value)之間的一種映射關(guān)系。樹中每個(gè)節(jié)點(diǎn)表示某個(gè)對(duì)象,而每個(gè)分叉路徑則代表的某個(gè)可能的屬性值,而每個(gè)葉結(jié)點(diǎn)則對(duì)應(yīng)從根節(jié)點(diǎn)到該葉節(jié)點(diǎn)所經(jīng)歷的路徑所表示的對(duì)象的值。決策樹僅有單一輸出,若欲有復(fù)數(shù)輸出,可以建立獨(dú)立的決策樹以處理不同輸出。
-來自 Wikipedia

  • 決策樹可以分為分類樹回歸樹,分別針對(duì)于離散變量和連續(xù)變量。
  • 再簡(jiǎn)單點(diǎn)說就是,建立一棵能把所有訓(xùn)練數(shù)據(jù)進(jìn)行正確分類的樹型結(jié)構(gòu)。

下面舉個(gè)簡(jiǎn)單的例子助于理解。對(duì)于估計(jì)個(gè)人信用風(fēng)險(xiǎn)(risk)問題,要基于這樣一些屬性,比如信用歷史(credit history)、當(dāng)前債務(wù)(debt)、抵押(collateral)和收入(income)。下表列出了已知信用風(fēng)險(xiǎn)的個(gè)人的樣本。

已知信用風(fēng)險(xiǎn)的個(gè)人的樣本

基于上面的信息,我們可以得到下面兩個(gè)不同的決策樹。

決策樹 A
決策樹 B

我們可以發(fā)現(xiàn),雖然兩棵決策樹都能對(duì)給定實(shí)例集進(jìn)行正確分類,但是決策樹B要比決策樹A簡(jiǎn)單得多。可見,對(duì)給定實(shí)例集分類所必需的樹的大小,隨測(cè)試屬性的順序而不同。

3.2 常見的建立決策樹的算法

3.2.1 ID3

ID3 was developed in 1986 by Ross Quinlan. The algorithm creates a multiway tree, finding for each node (i.e. in a greedy manner) the categorical feature that will yield the largest information gain for categorical targets. Trees are grown to their maximum size and then a pruning step is usually applied to improve the ability of the tree to generalise to unseen data.

下文會(huì)重點(diǎn)介紹ID3算法

3.2.2 C4.5

C4.5 is the successor to ID3 and removed the restriction that features must be categorical by dynamically defining a discrete attribute (based on numerical variables) that partitions the continuous attribute value into a discrete set of intervals. C4.5 converts the trained trees (i.e. the output of the ID3 algorithm) into sets of if-then rules. These accuracy of each rule is then evaluated to determine the order in which they should be applied. Pruning is done by removing a rule’s precondition if the accuracy of the rule improves without it.

3.2.3 C5.0

C5.0 is Quinlan’s latest version release under a proprietary license. It uses less memory and builds smaller rulesets than C4.5 while being more accurate.

3.2.4 CART

CART (Classification and Regression Trees) is very similar to C4.5, but it differs in that it supports numerical target variables (regression) and does not compute rule sets. CART constructs binary trees using the feature and threshold that yield the largest information gain at each node.

3.3 ID3算法詳解

3.3.1 奧卡姆剃刀(Occam's Razor)

奧卡姆剃刀最早是由邏輯數(shù)學(xué)家William of Occam于1324年提出的:

It is vain to do with more what can be done with less. . . . Entities should not be multiplied beyond necessity.

簡(jiǎn)單點(diǎn)說,找到能夠符合數(shù)據(jù)的最簡(jiǎn)單的解!

3.3.2 ID3算法的基本思路

給定訓(xùn)練實(shí)例集和能對(duì)它們正確分類的一組不同的決策樹,我們想要知道哪棵樹對(duì)未來實(shí)例正確分類的可能性最大。ID3算法假定可能性最大的樹是能夠覆蓋所有訓(xùn)練實(shí)例的最簡(jiǎn)單的決策樹
注:ID3不能保證每次都生成最小的樹,只是一種啟發(fā)式算法

ID3采用自頂向下決策樹歸納(Top-Down Decision Tree Induction):

  • 首先確定哪一個(gè)屬性作為根節(jié)點(diǎn)(root node)的測(cè)試
  • 選擇分類能力最好的(信息增益最大)屬性,作為當(dāng)前節(jié)點(diǎn)(current node)的測(cè)試
  • 用這個(gè)測(cè)試來劃分實(shí)例集,該屬性的每一個(gè)可能值都成為一個(gè)劃分(partition)
  • 對(duì)于每一個(gè)劃分重復(fù)上述過程,建立其子樹
  • 直到一個(gè)劃分中的所有成員在同一類別中,這個(gè)類別成為樹的葉節(jié)點(diǎn)(leaf node)

注:我們可以把所有可能的決策樹集合看成是定義一個(gè)變形空間(version space)。ID3在所有的可能樹的空間中實(shí)現(xiàn)一種貪心搜索,對(duì)當(dāng)前樹增加一個(gè)子樹,并繼續(xù)搜索,而且不回溯

3.3.3 如何判斷最佳分類屬性

ID3算法是由Quinlan首先提出的,該算法是以信息論(Information Theory)為基礎(chǔ)的,ID3通過把每個(gè)屬性當(dāng)作當(dāng)前樹的根節(jié)點(diǎn)來度量信息增益,然后算法選取提供最大信息增益的屬性。

① 信息增益的度量標(biāo)準(zhǔn) - (Entropy)
熵主要是指信息的混亂程度,變量的不確定性越大,熵的值也就越大。
變量的不確定性主要可以體現(xiàn)在兩個(gè)方面:

  • 可能信息的數(shù)量
    簡(jiǎn)單地說,擲硬幣有兩種可能信息(正面或者反面),擲篩子有六種可能信息(1,2,3,4,5,6),所以正確預(yù)測(cè)篩子的信息對(duì)我們更有價(jià)值:擲篩子游戲贏錢更多。
  • 每條信息出現(xiàn)的概率
    簡(jiǎn)單地說,如果我們假設(shè)對(duì)擲硬幣作弊使它正面出現(xiàn)的概率為3/4。那么既然我已經(jīng)知道猜正面的概率為3/4,告訴我擲硬幣結(jié)果的消息就不如關(guān)于未作弊的硬幣的消息更有價(jià)值。(后面講了具體計(jì)算)

綜上,給定消息空間M = {m1, m2, .....}以及相應(yīng)的概率P(mi),熵的公式為:

熵的公式

未作弊和作弊的熵計(jì)算如下:

未作弊的熵值計(jì)算
作弊后的熵值計(jì)算

為作弊熵值更大,擲硬幣的消息更有價(jià)值!!!

② 信息增益(Information Gain)
假設(shè)有訓(xùn)練實(shí)例集C。如果我們通過屬性P作為當(dāng)前樹的根結(jié)點(diǎn),將把C分成子集{C1, C2, C3 .....}。再把P當(dāng)作跟結(jié)點(diǎn)完成樹所需的信息的期望為:


完成樹所需的信息的期望

所以從從屬性P得到的增益通過樹的總信息量減去完成樹的信息期望來計(jì)算:

信息增益

還是舉信用風(fēng)險(xiǎn)的例子,P(low)=5/14, P(moderate)=3/14,P(high)=6/14。所以總信息量計(jì)算如下:


總信息量

如果把收入(income)作為樹的根結(jié)點(diǎn),表中的實(shí)例被劃分為C1 = {1,4,7,11}、C2 = {2,3,12,14}和C3 = {5,6,8,9,10,13}。


決策樹的一部分

完成樹所需的期望值為:


完成樹所需的期望值

最后,gain(income) = 1.531 - 0.564 = 0.967 bits
類似的,可以得到:

屬性 信息增益(bits)
gain(credit history) 0.266
gain(debt) 0.063
gain(collateral) 0.206

由于收入提供了最大的信息增益,所以ID3會(huì)選擇它作為根結(jié)點(diǎn)。

3.3.4 評(píng)價(jià)ID3

雖然ID3算法產(chǎn)生簡(jiǎn)單的決策樹(包括根結(jié)點(diǎn),決策結(jié)點(diǎn)和葉結(jié)點(diǎn)),但這種樹對(duì)預(yù)測(cè)未知實(shí)例的分類不見得一定有效。

3.4 評(píng)估決策樹

  • 決策樹適用于離散型數(shù)據(jù),變量的結(jié)果是有限集合。
  • 優(yōu)點(diǎn)
    • 決策樹計(jì)算復(fù)雜度不高,便于使用,高效!
    • 決策樹可以處理具有不相關(guān)特征的數(shù)據(jù)。
    • 決策樹可以很容易的構(gòu)造出一系列易于理解的規(guī)則。
  • 缺點(diǎn)
    • 處理缺失數(shù)據(jù),壞數(shù)據(jù)的以及連續(xù)型數(shù)據(jù)的困難。
    • 大的數(shù)據(jù)集可能會(huì)產(chǎn)生很大的決策樹。
    • 忽略了數(shù)據(jù)集中屬性之間的關(guān)系。
    • 過度擬合(涉及到剪枝)

參考文獻(xiàn)

  1. Artificial Intelligence,6th Edition
  2. 從決策樹學(xué)習(xí)談到貝葉斯分類算法、EM、HMM
  3. 機(jī)器學(xué)習(xí)經(jīng)典算法詳解及Python實(shí)現(xiàn)--決策樹(Decision Tree)
  4. Scikit-learn 文檔
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容