1.基於樹的模型比線性模型更好嗎?
如果我可以使用邏輯回歸解決分類問題和線性回歸解決回歸問題,為什么需要使用樹模型? 我們很多人都有這個問題。 實際上,你可以使用任何算法。 這取決於你要解決的問題類型。 其中有一些關鍵因素,它們將幫助你決定使用哪種算法:
- 如果因變量和自變量之間的關系通過線性模型很好地近似,則線性回歸將優於基於樹的模型。
- 如果因賴變量和自變量之間存在高度非線性和復雜關系,則樹模型將優於經典回歸方法。
- 如果你需要構建一個易於向人們解釋的模型,決策樹模型總是比線性模型更好。 決策樹模型甚至比線性回歸更容易解釋!
2.樹建模的關鍵參數是什么?如何避免決策樹過度擬合?
過度擬合是決策樹建模時面臨的主要挑戰之一。 如果沒有限制,它將為您提供100%的訓練集准確性,因為在最壞的情況下,它最終會為每個觀察結果制作1片葉子。 因此,在對決策樹進行建模時,防止過度擬合是關鍵,可以通過兩種方式完成:
- 設置樹大小的約束
- 樹修剪(Tree pruning)
讓我們簡單地討論這兩個問題。
設置樹大小的約束
這可以通過使用用於定義樹的各種參數來完成。 首先,讓我們看一下決策樹的一般結構:
- 1.節點拆分的最小樣本(Minimum samples for a node split)
- 定義要考慮拆分的節點中所需的最小樣本數(或觀察數)。
- 用於控制過度配合。 較高的值會阻止模型學習關系,這種關系可能對為樹選擇的特定樣本高度特定。
- 太高的值會導致欠擬合,因此應使用CV(calculate Variance)進行調整。
- 2.終端節點的最小樣本(葉子)( Minimum samples for a terminal node (leaf))
-
- 定義終端節點或葉子中所需的最小樣本(或觀察值)。
- 用於控制過度擬合,類似於min_samples_split。
- 一般來說,應該選擇較低的值來解決不平衡的階級問題,因為少數群體占多數的地區將占很大比例。
- 3最大樹木深度(垂直深度)(Maximum depth of tree (vertical depth))
-
- 樹的最大深度。
- 用於控制過度擬合,因為更高的深度將允許模型學習非常特定於特定樣本的關系。
- 應該使用CV進行調整。
- 4.最大終端節點數(Maximum number of terminal nodes)
-
- 樹中終端節點或葉子的最大數量。
- 可以定義代替max_depth。 由於創建了二叉樹,因此深度'n'將產生最多2 ^ n個葉子。
- 5.拆分時要考慮的最大特征(Maximum features to consider for split)
-
- 搜索最佳拆分數量時要考慮的特征數量,這些特征應該被隨機選擇。
- 功能總數的平方根效果很好,但我們應該檢查特征總數的30-40%。
- 較高的值可能導致過度擬合。
樹修剪(Tree pruning)
通過修剪可以進一步提高樹的性能。 它刪除不重要性的特征的分支, 這樣,我們降低了樹的復雜性,從而通過減少過度擬合來提高其預測能力。
修剪可以從根或葉開始。 最簡單的修剪方法從葉子開始,並刪除該葉子中所屬類的每個節點,如果不降低精度,則保持這種變化。 它也稱為減少錯誤修剪。 可以使用更復雜的修剪方法,例如成本復雜性修剪,其中使用學習參數(α)來權衡是否可以基於子樹的大小來移除節點。 這也被稱為最薄弱的鏈接修剪。
CART的優點
- 易於理解,解釋,可視化。
- 決策樹隱式執行變量篩選或特征選擇。
- 可以處理數字和分類數據。還可以處理多輸出問題。
- 決策樹需要用戶用於數據准備的相對較少的努力。
- 參數之間的非線性關系不會影響樹性能。
CART的缺點
- 決策樹學習者可以創建過於復雜的樹,這些樹不能很好地推廣數據--稱為過度擬合。
- 決策樹可能不穩定,因為數據中的小變化可能導致生成完全不同的樹--稱為方差,需要通過bagging和boosting等方法降低。
- 貪婪算法無法保證返回全局最優決策樹。這可以通過訓練多個樹來減輕,如特征和樣本隨機替換。
- 如果某些類占主導地位,決策樹學習者會創建偏向的樹。因此,建議在擬合決策樹之前平衡數據集。
3.使用什么標准來確定正確的最終樹大小?
在這種方法中,可用數據被分成兩組:用於形成學習假設的訓練集和用於評估該假設的准確性的單獨驗證集,特別是用於評估 修剪這個假設的影響。
動機是這樣的:即使學習者可能被訓練集內的隨機錯誤和巧合規律誤導,驗證集也不太可能表現出相同的隨機波動。 因此,可以預期驗證集可以提供針對過度擬合的安全檢查。
當然,驗證集必須足夠大,以便自身提供統計上顯着的實例樣本。 一種常見的啟發式方法是保留驗證集中可用示例的三分之一,使用其他三分之二進行訓練。
4.我們究竟如何使用驗證集來防止過度擬合?
一種稱為減少錯誤修剪(Quinlan 1987)的方法是將樹中的每個決策節點視為修剪的候選者。修剪決策節點包括刪除以該節點為根的子樹,使其成為葉節點,並為其分配與該節點關聯的訓練示例的最常見分類。
僅當生成的修剪樹在驗證集上執行的情況不比原始情況差時,才會刪除節點。迭代地修剪節點,總是選擇其移除最多地增加決策樹精度而不是驗證集的節點。節點的修剪繼續,直到進一步修剪是有害的(即,降低樹在驗證集上的准確性)。
減少錯誤修剪在決策樹學習中的作用:隨着節點從樹中刪除,測試集的准確度會提高。 這里,用於修剪的驗證集與訓練集和測試集都不同。未顯示用於修剪的驗證集的准確性。
另外,可用數據被分成三個子集:訓練樣例,用於修剪樹的驗證示例,以及一組用於在未來看不見的示例中提供無偏估計精度的測試示例。
如果有大量數據可用,則使用一組單獨的數據來指導修剪是一種有效的方法。一種常見的啟發式方法是:訓練集占所有數據的60%,驗證集占20%,測試集占20%。這種方法的主要缺點是,當數據有限時,為驗證集扣留部分數據會減少甚至還有可用於培訓的例子。