當前位置:
首頁 > 最新 > 機器學習決策樹的分裂到底是什麼?這篇文章講明白了!

機器學習決策樹的分裂到底是什麼?這篇文章講明白了!

作者 Prashant Gupta

譯者 AI100(rgznai100)

在實際生活中,樹的類比如影隨形。事實證明,樹形結構對於機器學習領域同樣有著廣泛的影響,特別是對分類和回歸兩大任務來說。

在決策分析中,決策樹可以非常清晰地呈現決策的過程和結果。「樹」如其名,決策樹所用的正是一個樹形的決策模型。數據挖掘領域經常會用決策樹來搜尋給定問題的解決策略,機器學習領域同樣會廣泛用到這一方法。這將會是這篇博客的主題。

演算法如何能被表示成樹形?

對於這一點,我們來看一個基本的例子:用泰坦尼克號的數據集每位乘客的信息來預測他能否倖存下來。接下來這個模型,選取了數據集內的3項特徵(features)/ 屬性(attributes)/ 列(columns):性別、年齡、sibsp(Sibling及Spouse:表示隨行的親屬數量)。

決策樹自上而下進行繪製,頂部節點被稱為根節點。如上圖所示:黑色加粗文字代表了條件(condition)/內部節點(internal node),分支(branches)/邊界(edges)基於這些節點分裂而出。不再分裂的節點就是計算出來的決策 / 葉節點。在本例中,乘客的倖存或遇難,分別對應於綠色和紅色的葉節點。

儘管真實的數據集將會有著更多的特徵,前面的樹形圖僅能算作某顆大樹的部分分支,但你無法否認這一演算法的簡潔性。特徵的重要性一目了然,數據間的關係也一眼就能看清。這裡的方法通常被稱為從數據中構建決策樹(learning decision tree from data),上面的樹形圖也被稱作分類樹(Classification tree),因為演算法在這裡的目標是把乘客分為倖存或遇難這兩類。回歸樹(Regression trees)也是同樣的方式進行呈現,只是它們所預測的是連續的數值,比如房價。通常來說,決策樹演算法指的是CART,即分類回歸樹(Classification And Regression Tree)。

那麼,決策樹背後機制到底是什麼?在形成決策樹的過程中,分裂涉及到的問題是選擇哪個特徵和分裂的條件是什麼,同時還要知道何時終止分裂。由於樹的生成相對比較武斷,你需要對其進行修剪,才能讓它看起來更好。讓我們先來看一個比較常用的分裂方法。

遞歸二元分裂

在遞歸二元分裂(Recursive Binary Splitting)中,所有的特徵都會被考慮,各種不同的分裂方式都將被嘗試,並使用成本函數(cost function)來評估每種分裂方式的優劣。成本最優(最低)的方法將被選用來進行分裂。

以前面泰坦尼克號數據集的分類樹為例:第一次分裂或在根節點時,所有的屬性/特徵都會納入進來考慮,訓練數據基於這一點被分成不同的組。我們共有3個特徵,因此會有3個待定的分裂。而後,我們用一個函數來計算每種分裂所消耗的成本。演算法自動選擇損失最小的那一個,具體到本例中就是乘客的性別。這個演算法本質上是遞歸的,因為每次分裂所形成的數據組都能以同樣的方式再次進行劃分。由於這一步驟,該演算法也被稱為是貪心演算法,因為我們極度渴望降低損失。這也使得根節點成為最好的預測器/ 分類點。

分裂成本

讓我們進一步討論用於分類和回歸的成本函數。在這兩種情況下,成本函數都在試圖尋找分裂後結構相似程度最高的那種方式。其中的意義是,我們可以更加確信測試數據將會跟隨哪個路徑。

Regression : sum(y?—?prediction)2

回歸

Classification : G = sum(pk * (1?—?pk))

分類

為評估某個分裂方式的優劣,我們用Gini分數來衡量訓練數據分裂後的混亂程度。其中,pk表示特定分組中相同輸入類別所佔的比例。當某一數據組的所有輸入都來自同一類別時,我們就得到了一個完美分類,此時的pk值不是1就是0,而G必定為0。但如果某個數據組中兩個類別的數據各佔一半,這就發生了最壞的情況,此時二元分類的pk=0.5, G=0.5。

何時停止分裂?

接下來你可能會問,決策樹何時停止分裂?由於一個問題通常有著大量的相關特徵,進而生成大量的分裂,形成一個巨大的樹形圖。如此複雜的樹,就容易出現過擬合。因此,我們有必要知道何時來停止分裂。

一種方法是在每個葉節點上設置訓練輸入量的最小閾值。比如,我們可以把每個葉節點設置成最少要有10位乘客的數據,忽略掉那些乘客數量少於10的葉節點。另一種方法是設定出模型的最大深度。決策樹最大深度指的是從根節點到葉節點的最長路徑所對應的分裂長度。

修剪

決策樹的性能可通過修剪來進一步提升,這就涉及到移除那些特徵並不重要的分支。通過這種方式,我們降低了決策樹的複雜性,也就是通過降低過擬合程度來提升它的預測能力。

修剪既可從根節點開始,又可從葉節點開始。最簡單的辦法是從葉節點開始,並移除所有使用該葉節點主分類的節點,如果該操作不會削弱決策樹的準確度,這一修剪就可被執行。這一方法被稱為減少錯誤修剪(reduced error pruning)。你還能使用其它更為成熟的修剪方法,比如成本複雜修剪(cost complexity pruning),它用一個學習參數來衡量當前節點的子樹大小,並以此來決定是否保留它。這一方法也被稱作最弱連接修剪(weakest link pruning)。

分類回歸樹優點

易於理解、闡釋,易於可視化。

決策樹潛在進行的是變數篩選(variable screening)或特徵選取(feature selection)。

能夠處理數值與標註這兩類數據,並能處理多輸出問題。

對用戶而言,決策樹僅需相對較少的數據預處理

參數間的非線性關係不會影響決策樹性能。

分類回歸樹缺點

決策樹容易創造出過於複雜的樹,致使數據泛化不夠。這就是所謂的過擬合(overfitting)。

決策樹不夠穩定,因為數據的微小變化可能會生成一個完全不同的樹形圖。這被稱為變異(variance),需要採取辦法進行優化。

貪心演算法無法保證所生成的決策樹全局最優。這可通過訓練多顆樹來加以緩解,它們的特徵和樣本可通過重置隨機取樣來獲得。

如果某些類別的權重過大,決策樹就會生成偏差樹(biased trees)。因此,在用數據生成決策樹前,要注意平衡數據集的特徵。

關於決策樹的這些概念都非常基礎。目前,實現該演算法的一個非常流行的庫是Scikit-learn。它擁有非常好的API,只需要幾行的Python代碼,你就能很方便地構建出模型。

課程結合實例介紹使用TensorFlow開發機器學習應用的詳細方法和步驟,著重講解了用於圖像識別的卷積神經網路和用於自然語言處理的循環神經網路的理論知識及其TensorFlow實現方法,並結合實際場景和例子描述了深度學習技術的應用範圍與效果。 所有案例均來自講師團隊工作中的親身實踐,所選案例均是深度學習的經典應用,非常具有代表性。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

機器學習奠基人Thomas Dietterich:人類將如何受到AI威脅
數據科學家、機器學習工程師與普通的軟體工程師有什麼不同
如何解決機器學習中的數據不平衡問題?
中科院計算所開源Easy ML:讓機器學習應用開發簡單快捷

TAG:機器學習 |

您可能感興趣

假若機器利用語言影響你的決策,這會顛覆什麼?
我到底是裸辭還是找到工作再辭職?看完這篇文章再做決策!
木葉到底誰當家?火影說了不算,輪迴眼才是最後的的決策者!
多爾袞的「剃髮令」雖然成功了,但為何說這決策差點害了清朝
秦始皇修長城,是一錯誤決策?別再被騙了,這才是事實!
決策是怎樣做出的?
「鬼使神差」的背後,什麼影響了我們的決策?
德國真的最嚴謹嗎?這一決策,打臉了
秦始皇為何是千古一帝?並非一掃六國,而是這一決策!
一文帶你讀懂機器學習和數據科學的決策樹
鐵托在決策上犯了什麼錯,為何他一死,南斯拉夫就解體了?
掌握了數據卻做不出好的決策,問題出在哪?
機器學習第一課:決策樹學習概述與實現
把人做決策換成演算法決策就公平了嗎?不見得
教練說他累了,詹姆斯卻不認為自己累,拿下尷尬四雙只是決策錯誤
為何「花唄」被大量用戶關閉?這個錯誤決策是關鍵,網友:虧了!
特朗普這個決策引發眾怒,被當眾質問:你難道就沒有孩子嗎!
史可法能力如何,究竟有什麼功勞?專家:重大決策幾乎全錯!
讓我們做出錯誤決策的腦迴路
白海泉:多問幾個為什麼再決策