決策樹在機器學習的理論學習與實踐

決策樹,是一種傳統機器學習算法,也是機器學習的入門算法之一。在它的基礎上,衍生了隨機森林、GBDT、XGBOOST等在CTR領域效果極佳的算法,所以,對它的學習可視爲通向高級算法的必經之路,同時,它具備極強的可解釋性,可應對迴歸與分類問題,也視爲商業應用展現的不二之選。對學習算法的入門者來講,瞭解決策樹頗有必要,爲此,飛馬網於3月27日晚,邀請到畢業於美國密蘇里大學機器視覺實驗室的黃楷老師進行線上直播,黃老師向你們分享了關於決策樹的相關理論與實踐應用。算法

微信圖片_20180328152725.jpg 

如下是本次分享的主要內容:微信

 

一.簡介數據結構

1.在看簡介以前,咱們先討論幾個基礎問題:機器學習

機器學習包括有監督學習和無監督學習。有監督學習是明確地代表每一個樣本的類別或數值,在有監督學習之下,又分爲分類和迴歸問題,分類問題表示預測每一個樣本的類別,而回歸問題表示預測每一個樣本的具體數值。無監督學習並無給出樣本的類別或數值,它會經過一系列的算法進行聚類。函數

今天咱們要學習的決策樹屬於有監督學習,它能夠處理分類和迴歸兩個問題。學習

2.決策樹簡介:測試

幻燈片2.jpg

 

上面這張圖片就是決策樹的簡介,你們能夠先簡單瞭解一下,後面會有深刻的探索。大數據

 

二.決策樹的結構圖片

幻燈片3.jpg 

咱們能夠看到上圖左是一個很是基本的樹形結構,學習數據結構的人對此必定很熟悉。咱們重點看頭部的根節點,下面的葉子節點表明分類後的結果,下面的分支表明數據的斷定條件,例如第一層是大於0.9九、大於1.20、大於3.20等。開發

 

三. 決策樹使用的階段

 

1.在咱們使用決策樹的時候,分爲兩個階段:訓練階段和分類階段。

幻燈片4.jpg

 

訓練階段咱們會經過已有的數據訓練一個模型,分類階段咱們會經過模型進行數據的預測,一般咱們會將數據隨機分爲十個部分,將八個部分進行訓練,取兩個進行測試,測試的數據不會出如今咱們的訓練數據中,咱們最終的結果也是以測試的數據爲準,最後經過一個交叉驗證,獲得準確率。

 

2.例子:

下面咱們經過一個國外信用卡的例子來進行學習。

幻燈片5.jpg 

第一列表示數據的ID,第二列表示是否有退稅,第三列表示婚姻狀態(單身、離異、已婚),第四列表示納稅收入,第五列就是咱們要預測的。

嚴重的話,可理解爲這我的是否有過信用卡詐騙記錄,不嚴重的話,可理解爲是否信用卡有逾期等等。

咱們能夠稱這裏的數據有十個樣本、三個屬性,「categorical」表示數據是離散的,「continuous」表示數據是連續的,「class」表示咱們要預測的類別。

經過一系列的感性認識,同窗甲可能會構建出上圖右的決策樹,黃色的字指斷定的是哪一列,箭頭上的值指的是判別的值,藍色的字指預測的結果。

 

 

 

對於同窗甲這個模型,咱們來看一看他是怎麼判別的:

幻燈片6.jpg 

 

幻燈片7.jpg

 

 

這時候同窗乙可能會以爲不大滿意,他認爲婚姻多是最重要的,就把婚姻放在決策樹的第一位:

幻燈片8.jpg 

以上的這個例子是對決策樹的感性理解,經過對每一步進行判別,來獲得最終的目的。

 

四.如何理性地創建決策樹

下面咱們來進行理性的思考,到底如何去創建決策樹?

1.創建決策樹的基本步驟:

幻燈片9.jpg 

對於樹的截止問題,從上圖中咱們得知,它有兩個結束的條件,一是全部的葉子節點屬於同一類別,二是全部的備選屬性已經選完。當達不到結束條件時,咱們就會選擇一個最佳的屬性來進行構建。

 

2.例子:

幻燈片10.jpg 

 

幻燈片11.jpg 

 

幻燈片12.jpg 

 

幻燈片13.jpg 

因爲以前的最優節點都是想出來的,所以就會遇到另外的問題,「如何去選擇最優節點?」和「選擇節點時遇到連續性數據時,如何處理?」

幻燈片14.jpg 

3.如何去選擇最優節點:

接下來,咱們攻克一下這些問題。首先引入一個概念—信息熵。它是一個物理概念,主要描述信息的混亂程度,熵越大,信息越混亂,它的公式以下圖所示。

幻燈片15.jpg 

下面是信息熵的一些特性:

幻燈片16.jpg 

 

在構建決策樹時,咱們會選擇信息熵的一個差值來進行構建,咱們來具體看一下例子:

幻燈片17.jpg 

在上圖的例子中,咱們有14個樣本,5個是「No」,9個是「Yes」,屬性有天氣、溫度、溼度、是否颳風。經過這四個維度,咱們決定要不要去打網球。

選擇第一個節點的時候,咱們有四個備選方案:

幻燈片18.jpg 

到底如何選取最優屬性呢?咱們能夠先計算一下原始的信息熵,在原始數據裏面有14個樣本,咱們套進公式得出,原始的信息熵是0.94。

幻燈片19.jpg

 

對於第一個備選項天氣,咱們能夠分爲三個值(晴天、多雲、下雨):

幻燈片20.jpg 

獲得天氣各自熵的值以後,咱們再經過各自熵的值乘以它發生的機率。按照天氣屬性咱們得出熵的值是0.693:

幻燈片21.jpg 

同理,咱們能夠依次地計算溫度、溼度、颳風的信息增益:

幻燈片22.jpg 

上圖的值是說咱們以前父節點的信息增益,5次不打球、9次打球的值減去按條件得出的信息增益,咱們會發現,其實對於天氣而言,它的信息增益是最大的,咱們就會選擇天氣做爲最佳的分裂節點。

 

其次,溼度的計算方式,就是咱們以前講的獲得它的一個信息增益率,而後去挑選哪一個是它的最優節點:

幻燈片23.jpg 

通過上面這些比較簡單的構建方法,咱們就能獲得最終的決策樹:

幻燈片24.jpg

 

五.創建決策樹後的思考

在構建完這棵決策樹以後,事情並無結束,你們能夠思考一下,在建模型的時候,咱們老是但願它的準確率越高越好,但這些是否是咱們要的一個結果?

1.在機器學習中,有一個詞叫作「過擬合」。它表示咱們的模型在訓練數據時表現地很棒,但在面臨外部數據的時候,它又顯得不堪一擊,咱們一塊兒來看下圖:

幻燈片25.jpg 

圖左是訓練數據的一個分佈,理想狀態下圖右是咱們要獲得的一個模型,但機器卻不這樣認爲,機器以爲畫個貓更適合,新來的數據經過這隻貓會劃分什麼結果,咱們不知道,這叫作Overfitting,就是過擬合。

 

2.決策樹在訓練集當中,的確有很是好的分類能力,但它對未知的測試數據而言,不是特別適應,產生過擬合現象,這時咱們就須要剪枝。

幻燈片26.jpg 

決策樹分爲預剪枝和後剪枝。預剪枝就是經過人爲的知識,肯定節點樣本數目以及樹的高度和深度等,操做起來很是方便。但在實際應用中,咱們會選擇後剪枝。

決策樹的剪枝一般會作如下這幾個點:

幻燈片27.jpg 

咱們比較經常使用的是悲觀錯誤剪枝和代價複雜度剪枝。悲觀錯誤剪枝,假設說決策樹的精度在剪枝的先後並沒有變化,則進行剪枝,精度不等於錯誤度,若是說決策樹剪枝後的偏差小於剪枝前精度的上限,效果性是一致的,就進行剪枝。咱們認爲數越大越容易過擬合,代價複雜度剪枝融合了錯誤率和數的大小,造成新的值平衡兩個因數,而後選擇比較大的,剪枝處理掉。

 

六.決策樹+

1.決策樹差別:

構建一棵樹的步驟咱們已經清晰,上面所講的方法比較傳統,咱們稱之爲ID3,除此以外還有其它的一些方法,咱們來比較一下:

幻燈片28.jpg 

在ID3中,咱們使用的是信息增益來進行判斷,信息增益是父節點的熵減去子節點的熵的一個最大值。一個ID對應惟一的一個類,這樣的話,它的信息增益值是最大的,它優先選擇ID做爲它分裂的節點,因此,咱們的樹只有兩層,一層是判斷ID,,一層是斷定分類,並無什麼意義,人們就會開發出新算法來解決這些問題。

第一個新算法是C4.5,它再也不使用信息增益的差值,而是使用信息增益率,信息增益率是子節點的熵除以父節點的熵,就能夠很好地避免ID的問題。同時C4.5也能夠處理連續性數據和缺失性數據,達到三贏的效果,其次C4.5能夠解決迴歸問題,經過估算某一個具體的值。對於大數據而言,計算熵會涉及取對數的問題,速度並非特別好。

人們又開發了一個新的算法,叫作CART,它使用基尼係數去表明信息熵,它不只能夠很好地去表示信息的存進度,並且拋棄了用對數計算,速度快、更靠譜。二叉樹的處理避免了樹的碎片化。

 

2.例子:

下面咱們來看例子,加深一下理解。

幻燈片29.jpg 

這個數據集叫作Iris數據集,在入門學習階段是一個很是經常使用的分類實驗數據集,中文名叫作鳶尾花卉數據集,屬於多重分類,包括150個樣本,分爲3類,每一列的花50個數據,每一個數據包含4個屬性,去預測鳶尾花屬於哪種。

下圖是具體演示過程:

幻燈片30.jpg 

下面這張圖就是最後決策樹的一個值,咱們簡單看一下:

幻燈片31.jpg 

在咱們實際應用中,比較經常使用的實際上是隨機森林,它速度快、不易過擬合。以後決策樹還發展出GBDT梯度降低樹,融合了「森林」的思想,加強錯誤樣本的權重,它能夠作特徵處理。

 

在直播最後,黃楷老師還針對你們的提問進行了耐心講解,咱們一塊兒來看一下:

1.本身動手實現這個計算過程,仍是本身調用內建函數?

黃老師:我建議初學者本身先動手寫一下整個計算過程,調包的話,工做中可使用,但並不適合加深學習印象。

2.決策樹要大量數學公式嗎?

黃老師:決策樹的數學公式主要體如今節點計算,包括信息增益怎麼計算和剪枝理論,公式不大多,剛開始作的時候,能夠先拋棄剪枝部分,只計算它的分裂節點、信息熵,這樣的話,數學公式就不是特別多。

3.決策樹的應用場景?

黃老師:其實在工做當中,咱們已經不多單純地只使用決策樹,一般會使用隨機森林和其它的一些算法。在數據展示方面,決策樹會給人很是直觀的理解,有着獨一無二的優點。

 

以上六部分就是本次線上直播的主要內容,想了解更多更詳細內容的小夥伴們,能夠關注服務號:FMI飛馬網,點擊菜單欄飛馬直播,便可進行學習。

 

服務號.jpg 

相關文章
相關標籤/搜索