決策樹學習
從今天開始,堅持每天學習乙個機器學習的新知識,加油!
決策樹學習是應用最廣的歸納推理演算法之一,是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一顆決策樹。
決策樹通過把例項從根結點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開始,冊數這個結點指定的屬性,然後按照給定例項的該屬性對應的樹枝向下移動,然後這個過程再以新結點為根的子樹上重複。
上圖畫出了一顆典型的學習到的決策樹,這顆決策樹根據天氣情況分類「星期六上午是否適合打網球」。貌似很多機器學習和資料探勘的書籍提到這個決策樹的時候都是說的這個例子,汗!不過呢,我們還可以根據這顆決策樹寫出對應的表示式:
基本的id3演算法通過自頂向下構造決策樹來進行學習。構造過程是從「哪乙個屬性將從樹的根結點被測試?」這個問題開始的。我們使用統計測試來確定每乙個例項屬性單獨分類訓練樣例的能力。分類能力最好的屬性(即資訊增益最大的屬性)被選作樹的根結點的測試。然後為根結點屬性的每個可能值產生乙個分支,並把訓練樣例排列到適當的分支之下。然後重複整個過程,用每個分支結點關聯的訓練樣例來選取在該點被測試的最佳屬性。這形成了對合格決策樹的貪婪搜尋,也就是演算法從不回溯重新考慮以前的選擇。
熵:表示了任意樣例集的純度。
假定s為訓練集,s的目標屬性c有m個可能的類標號值,c=,每個類標號值相應的概率為p1,p2,p3…pm。那麼訓練集s的資訊熵定義為:entropy(s)=entropy(p1,p2,,,,pm)=-(p1*log2(p1)+p2*log2(p2)+pm*log2(pm));
資訊增益:乙個屬性的資訊增益就是由於使用這個屬性分割樣例而導致的期望熵降低。
假設訓練集為s,並用屬性a來劃分s,那麼屬性a的資訊增益gain(s,a)為訓練集s的熵減去按屬性a劃分s後的子集的熵,即gain(s,a) = entropy(s) - entropy_a(s)。
entropy_a(s)=abs(si)/abs(s)entropy(si)(si表示描述屬性a的離散值的集合,abs(si)表示屬性a當前這個值的個數)
它是關於現有屬性的有限離散值函式的乙個完整空間。但是當遍歷決策樹空間時,id3 僅維護單一的當前假設,這樣就失去了表示所有一致假設帶來的優勢,而且id3 演算法在搜尋中不進行回溯,每當在樹的某一層次選擇了乙個屬性進行測試,它不會再回溯重新考慮這個選擇,所以它易受無回溯的爬山搜尋中的常見風險影響:收斂到區域性最優的答案,而不是全域性最優的。
如果給定乙個訓練樣例的集合,那麼通常有很多決策樹與這些樣例一致。所以,要描述id3 演算法的歸納偏置,應該找到它從所有一致的假設中選擇乙個的根據。id3從這些決策樹中會選擇哪乙個呢?它會選擇在使用簡答到複雜的爬山演算法遍歷可能的樹空間時遇到的第乙個可接受的樹。總結的說,id3歸納偏置的搜尋策略為:較短的樹比較長的樹優先;那些資訊增益高的屬性更靠近根結點的樹優先。
為什麼短的假設優先?
假設物理學家優先選擇行星運動簡單的解釋,而不用複雜的解釋,為什麼?一種解釋是短假設的數量少於長假設的數量,所以找到乙個短的但同時與訓練資料擬合的假設的可能性較小。相反,常常有很多非常複雜的假設擬合當前的訓練資料,但卻無法正確地泛化到後來的資料。比如考慮決策樹假設,500個結點的決策樹比5個結點的決策樹多得多,如果給定乙個20個訓練樣例的集合,可以預期能夠找到很多500個結點的決策樹與訓練資料一致,而如果乙個5個結點的決策樹也可以完美的擬合這些資料當然是出乎意料的。所以我們會相信5個結點的樹不太可能是統計巧合,因而優先選擇這個5個結點的決策樹的假設,而不選擇500個結點的。
避免過度擬合資料
對於乙個假設,當存在其他的假設對訓練資料樣例的擬合比它差,但事實上在例項的整個分布中表現得卻更好時,我們說這個假設過度擬合。
避免決策樹學習中的過度擬合的方法被分為兩類:
在實踐中證實第二種方法後修剪更加成功的實施準則:
1:使用與訓練樣例截然不同的一套分離的樣例,來評估通過後修剪方法從樹上修剪結點的效用。
2:使用所有可用資料進行訓練,但是進行統計測試來估計擴充套件(或修剪)乙個特定的結點是否有可能改善在訓練集合外的例項上的效能。
3:使用乙個明確的標準來衡量訓練樣例和決策樹的複雜度,當這個編碼的長度最小時停止樹增長。
合併連續值的屬性
我們最初的id3定義被限制為取離散值的屬性。所以,我們可以先把連續值屬性的值域分割為離散的區間集合。例如,對於連續值的屬性a,演算法可以動態的建立乙個新的布林屬性ac,如果a
屬性選擇的其他度量標準
有一些極端的例子裡,採取資訊增益來作為選擇樹的結點的優先性,有時這棵樹雖然可以理想的分類訓練資料,但是對於例項的資料的效能非常差,不是乙個很好的**器。所以我們選擇了新的度量標準:增益比率。增益比率的計算方法先略過,這個我在後面的總結裡會詳細的講解到。
處理缺少屬性值的訓練樣例
賦給屬性a決策結點n的訓練樣例中該屬性的最常見值。
為屬性a的每個可能值賦予乙個概率。
處理不同代價的屬性
在某些學習任務中,例項的屬性可能與代價相關。例如,在學習分類疾病時,我們可能以這些屬性來描述患者:體溫、活組織切片檢查、脈搏、血液化驗結果等,這些屬性在代價方面差別非常大。對於這樣的任務,我們將優先選擇盡可能使用低代價屬性的決策樹,通過引入乙個代價項到屬性選擇度量中,我們可以用資訊增益除以屬性的代價,這樣我們就可以使低代價的屬性會被優先選擇。僅當需要產生可靠的分類時我們才依賴高代價屬性。
機器學習(二) 決策樹
決策樹是用於分類的一種機器學習演算法。其最大的特點就是簡單,直觀.由於資料來自於之前的筆記。原例子的出處找不到,乾脆就手繪算了 xd。其中如果資料不是離散值,要先處理成離散值再進行決策樹的計算。圖1 用乙個例子來講吧。如上圖,現在是有14條資料都從調研中得到,其中是研究是否買電腦的資料,rid是列號...
機器學習 決策樹
一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...