先通過乙個例子引入:
例子**:這就是乙個決策樹,通過這個樹就可以判斷出女孩到底會不會去見乙個相親物件。如果對樹結構有所了解的話,很容易生成乙個樹,
我們可以看到決策樹描述了整個做決定的過程,它和人們實際做決定的過程非常的類似,有著很強的可解釋性。
總結一下,這是乙個二分類問題,我們可以通過判斷相親物件的年齡,長相,收入等去判斷這個女孩會不會去見面。
上面只是舉了乙個例子引入決策樹演算法,實際上,想要構造乙個可以解決二分類問題的決策樹沒有這麼簡單。我們需要根據訓練樣本去學習得到決策樹。
構造一棵決策樹,首先面臨的乙個問題是:並不是所有的特徵都像上面舉得例子那樣,有著很強的實際意義的。更多的時候,特徵只是乙個數值,沒有什麼明確的物理含義,該選擇哪些特徵作為樹的節點,閾值該設成多少?
我們可以想象一下這個問題,直覺上,我們會選擇能盡量使樣本分開的特徵和閾值。這也就是說 訓練集經過這個特徵和閾值劃分成兩部分,兩個部分的類別要盡量單一,通常稱為純度,純度越大越好。假設0/1二分類問題,經過劃分之後,我們希望一部分裡全是0類別,另一部分全是1類別。我們會選擇能達到這樣效果的特徵和閾值作為樹的節點。
生成決策樹有很多不同的演算法,有id3,c4.5,c&rt等演算法,他們使用不同的衡量指標去選擇切分的特徵和閾值。雖然衡量指標不一樣,不過大體上都是使切分後的純度盡量大。
我們在這裡詳細介紹一下c&rt演算法,c&rt演算法在生成分類決策樹的時候是通過gini係數進行特徵和閾值選取的。
可以看一下gini係數公式所代表的物理含義:gini係數可以大概描述切分之後的樣本的純度。
c&rt演算法生成決策樹的基本步驟如下:
1. 遍歷每個特徵的每乙個閾值,計算gini係數找到最好的分割點
2. 分割成兩個節點n1和n2
3. 對n1和n2分別繼續執行1-2步,直到每個節點足夠「純」為止(類別足夠單一)
這個時候,會發現只要次數足夠多,切分到最後肯定就可以使樹的葉子的類別是單一的。這時決策樹的葉子就可能很多,決策樹就會變得很大。我們在前面說過模型變得很複雜的話,就很容易產生過擬合(overfitting)的問題。我們在這裡通過加入約束項去對生成的決策樹進行修剪。
在這裡我們用葉子的數量去衡量決策樹的模型複雜度。加入葉子的數量作為約束項,達到平衡ei
n 和模型複雜度的目的。g(
0)表示沒有修剪的決策樹,g(
1)表示去掉乙個葉子的決策樹,g(
2)表示去掉乙個葉子的決策樹………
然後就是從這些決策樹中選擇乙個,使ei
n(g)
+λω(
g)最小,作為修剪之後的決策樹。
決策樹就是這麼構建起來的,我們可以看出來決策樹有著很強的可解釋信,很符合人的思維習慣。同時它也有著一些缺點,它並沒有很強的理論保證,很多情況都是從直覺上感覺有道理,並沒有什麼理論保證。
森林是什麼?很多樹就構成森林了。
那隨機森林就是由許多決策樹通過模型融合的方法構成的,而且這些決策樹的生成具有一定的隨機性。 g1
,g2,
...,
gn
從決策樹到隨機森林 小結
決策樹演算法接觸了三種,id3,c4.5,cart。1.id3採用資訊增益來選擇特徵,演算法比較基礎也簡單,缺點是容易過擬合,不能適應連續性輸入。2.c4.5採用資訊增益率來選擇特徵,能應對連續性輸入了。3.cart用基尼指數來選擇特徵。值得一提的是,sklearn有關決策樹的庫中,預設是用cart...
機器學習筆記8 決策樹
決策樹容易過擬合,尤其是在你具有包含大量特徵的資料時,複雜的決策樹可能會過擬合資料 輸出是連續或離散,分為回歸和分類 名詞 例項 輸入 函式目標 答案 假設類 願意考慮的所有函式 訓練集 由所有的輸入和與之配對的標籤組成的集合 候選者 可能會使目標函式 測試集 決策樹有特定的表示 決策節點 挑選乙個...
機器學習 決策樹和隨機森林
熵 度量隨機變數的確定量 如果變數完全確定則是0,如果變數完全能不確定則是1 數學期望 mean 是試驗中每次可能結果的概率乘以其結果的總和,它反映隨機變數平均取值的大小 條件熵 在確定的乙個或多個條件下,確定另乙個資訊的熵 推導過程 相對熵 互相息 總結 相關熵 kl散度 可以度量兩個隨機變數之間...