機器學習 決策樹

2021-10-23 21:16:10 字數 2509 閱讀 1181

決策樹是一種分類演算法,也可以用於回歸!

判斷是否喜歡打籃球:第乙個節點為age,第二個節點為是否是男生,在葉子節點的位置要能給出判定的唯一結果!而如果不是葉子節點,那麼不能給出最後的判定結果。例如爺爺奶奶那個節點裡面的3個人,就是不愛打籃球的,而is male節點中,兩個小於15歲的愛不愛打籃球還不能判斷。

決策樹的兩個階段:

熵的理解:不確定程度的大小,與概率大小成反比。

基尼係數:概率越大,gini係數越小,和熵類似。

判斷是否想去打籃球的過程:

那個屬性當根節點?

構造樹的基本思想是隨著樹的深度的增加,節點的熵迅速地降低。熵降低的速度越快越好,我們期望得到一棵高度最矮的決策樹。

先按照乙個特徵劃分,然後計算這個特徵的類別概率,然後再計算分支當中的類別概率,然後再進行加權求和。比如下圖第一種情況,outlook -> sunny/overcast/rainy的概率分別為5/14、4/14、5/14, 然後對應分支的熵為0.971、0、0.971,於是這個分類的最終熵為:5/14 x 0.971 + 4/14 x 0 + 5/14 x 0.971 = 0.693。原來的系統的資訊熵,打球的概率為9/14不打的概率為5/14,因此系統的熵為0.940。

資訊增益:系統原來的熵減去現在的熵,打球的例子中,gain(outlook) = 0.940 - 0693 = 0.247;

同樣可已計算出gain(temperature) = 0.029,gain(humidity) = 0.152,gain(windy) = 0.048;因此,gain(outlook)最大,使得系統的資訊熵下降的最快,所以決策樹的根節點就選擇outlook。

其他節點擊擇:根節點擊擇出來後就不用官其他的節點了,剩下的就是遞迴問題了。

id3:資訊增益:系統熵 - 基於某個劃分後的系統熵

c4.5:資訊增益率 = 資訊增益 / 劃分類別自身的熵

cart:gini係數

評價函式:c(t) = sum_leaf( n_t * h(t) ) # 相當於代價函式、損失函式。

其中:h(t)表示當前葉子節點的熵,n_t表示當前葉子節點的內的元素個數。

對於連續值,首先將其離散化,然後把連續屬性的值分成不同的區間,依據是邊角各個**點的gain的大小,遍歷以後就能確定分割點。

如果增加乙個id列,並且根據此來劃分,那麼就會劃分成14個節點,而且每個節點的熵為0,於是資訊增益率為gain(id) = 0.940 - 0 = 0.940是最大的,然而,對於新的需要判斷的測試集,id是沒有任何意義的。因此資訊增益指標是不完善的。

因此採用資訊增益率來評價,例如上面的outlook,gain(outlook) = 0.247,則資訊增益率:

0.247 / h(5/15,4/14,5/14),注意資訊增益率除的是自身類別的熵,不是系統原來的熵。

我們不知道生成的決策樹是否是最矮的。因為我們總可以構建出來絕對大的書樹,根據訓練集可以構建乙個完全的分類樹,但是這樣對於新的測試集並不友好,也就是泛化能力很差。因此不需要決策樹太龐大,以至於過擬合。

**預剪枝:**讓決策樹在構建過程中提前停止。可以控制深度,也可以控制某個分支的樣本個數。

**後剪枝:*構建好決策樹後進行剪枝。c(t) = sum_leaf( n_t x h(t) ) ,修正後的代價函式:

c_α(t) = c(t) + α|t_leaf| 。其中,t表示葉子節點個數,c(t)表示原來的基礎損失函式,α越大,要求的葉子節點數越少,相反則越多,相當於懲罰項。這應用在後剪枝。判斷乙個節點的代價函式,再判斷這個節點下面所有的葉子節點的代價函式的和,保留較小的那一種情況。

隨機性1:選取樣本的隨機性,給定選取比例,每次選取一部分就可以了。這裡是有放回取樣。

隨機性2:選取樣本的特徵的時候,比如10個特徵,隨機選擇其中一部分,然後建立決策樹。

隨機森林會隨機建立很多決策樹,最後的決定由多個樹共同決定。

載入資料,用sns的pairplot畫出原始資料的圖,用violin畫乙個;

樣本分割,資料集建立;

決策樹引數描述和實現;

機器學習 決策樹

一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...

機器學習 決策樹

我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...

機器學習 決策樹

一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...