決策樹是AI產品經理在工作中經常會用到的一個機器算法,為了更清晰地瞭解決策樹算法,本文從三個方面全面介紹了決策樹的概念,流程和應用,希望對你有幫助。
你是否玩過20個問題的遊戲?
遊戲的規則很簡單:參與遊戲的一方在腦海裏想某個事物,其他參與者向他提問題,只允許提20個問題,問題的答案也只能用對或錯來回答。問問題的人通過推斷分解,逐步縮小待猜測事物的範圍。
如果你玩過這個遊戲,那麼恭喜你,你已經掌握了決策樹算法的應用。是不是非常簡單?
圖表示決策樹
所有的機器學習算法中,決策樹應該是最友好的了。它呢,在整個運行機制上可以很容易地被翻譯成人們能看懂的語言,也因此被歸為“白盒模型”。
為了更直觀地理解決策樹,我們現在來構建一個簡單的郵件分類系統,如圖:
現在,我們來總結一下決策樹的構成:
收集數據:可以使用任何方法。
準備數據:樹構造算法只適用於標稱型數據,因此數值型數據必須離散化。
分析數據:可以使用任何方法,構造樹完成後,我們應該檢查圖形是否符合預期。
訓練算法:構造樹的數據結構。
測試算法:使用經驗樹計算錯誤率。
使用算法:此步驟可以適用於任何機器學習算法,而使用決策樹可以更好地理解數據的內在含義。
上面這種樸素的算法很容易想到,但是太容易得到的它往往不夠美好。如果自變量很多的時候,我們該選哪個作為根節點呢?
選定了根節點後,樹再往下生長接下來的內部節點該怎麼選呢?針對這些問題,衍生了很多決策樹算法,他們處理的根本問題是上面流程的第四步——訓練算法,實際上也就是劃分數據集方法。
我們來看看代表之一 —— ID3算法。
在劃分數據集之前之後信息發生的變化稱為信息增益,知道如何計算信息增益,我們就可以計算每個特徵值劃分數據集獲得的信息增益,獲得信息增益最高的特徵就是最好的選擇。
這裏又引入了另一個概念——熵。這裏先不展開説了,我們記住他的概念:一個事情它的隨機性越大就越難預測。
具體來説這個概率p越小,最後熵就越大(也就是信息量越大),如果極端情況一件事情概率為1,它的熵就變成0了。
比如,你如果能預測一個彩票的中獎號碼就發達了。但是,如果你能預測明天太陽從東邊升起來則毫無價值。這樣衡量一個信息價值的事,就可以由熵來表示。
聰明的你或許已經發現了,決策樹算法其實就是為了找到能夠迅速使熵變小,直至熵為0的那條路徑,這就是信息增益的那條路。我們將對每個特徵劃分數據集的結果計算一次信息熵,然後判斷按照哪個特徵劃分數據集是最好的劃分方式。
舉個容易理解的例子:
解決問題:預設4個自變量:天氣、温度、濕度、風速,預測學校會不會舉辦運動會?
步驟一:假設我們記錄了某個學校14屆校運會按時舉行或取消的記錄,舉行或者取消的概率分別為:9/14、5/14,那麼它的信息熵,這裏也叫先驗熵,為:
步驟二:我們同時記錄了當天的天氣情況,發現天氣好壞和校運會舉行還是取消有關。14天中,5次晴天(2次舉行、3次取消)、5次雨天(3次舉行、2次取消)、4次陰天(4次舉行)。相對應的晴天、陰天、雨天的後驗熵。
步驟三:我們計算知道天氣情況後的條件熵。
步驟四:我們計算在有沒有天氣情況這個條件前後的信息增益就是。
步驟五:我們依次計算在有沒有温度、濕度、風速條件前後的信息增益。
步驟六:根據設置的閾值,若信息增益的值大於設置的閾值,選取為我們的特徵值,也就是我們上圖中的矩形節點。
步驟七:生成決策樹。選取信息增益最大的自變量作為根節點。其他的特徵值依次選取為內部節點。
比如上面的例子是這樣的過程:
經過如上步驟,我們得到決策樹。可以看到,最終們只選取了3個特徵值作為內部節點。
決策樹也是一種分類方法。它的分類是二元的,一個值經過相應節點的測驗,要麼進入真分支,要麼進入假分支。所以一組值經過決策樹以後,就會形成從樹跟到結果節點的一條唯一路徑。所以它除了可以對輸入進行分類之外,還能給出如此分類的解釋。因此決策樹常常被應用於專家系統,用於解釋回答人類專家才能回答的問題。
例如需要考慮多個變量時,我們可以利用決策樹進行預測。
本文由 @CARRIE 原創發佈於人人都是產品經理,未經許可,禁止轉載
題圖來自Pexels,基於 CC0 協議