使用除樹之外的其他“弱學習器”進行提升
對提升(以及梯度提升等特定技術)的描述通常會泛泛地談論“弱學習器”,然後立即轉而專門討論提升樹。
為什麼是這樣?我看過一些關於提升 SVM 的討論,但很少甚至沒有關於提升神經網絡或高斯過程的討論。有沒有關於為什麼樹比其他“學習者”更適合提升的文獻?
對於結構未知的新數據挖掘問題,樹通常是一個不錯的選擇。從統計學習的要素第 10.7 節:
“就對學習過程的要求而言,工業和商業數據挖掘應用程序往往特別具有挑戰性。數據集的觀察次數和測量的變量數量通常非常大。因此,計算方面的考慮起到了重要作用。此外,數據通常是混亂的:輸入往往是定量、二元和分類變量的混合,後者通常具有多個級別。通常有很多缺失值,很少有完整的觀察值。數字預測變量的分佈和響應變量通常是長尾且高度偏斜的……此外,它們通常包含很大一部分的嚴重錯誤測量(異常值)。預測變量通常在非常不同的尺度上進行測量。
在數據挖掘應用程序中,通常只有一小部分已包含在分析中的大量預測變量實際上與預測相關。此外,與模式識別等許多應用不同,很少有可靠的領域知識來幫助創建特別相關的特徵和/或過濾掉不相關的特徵,包含這些特徵會大大降低許多方法的性能。
此外,數據挖掘應用程序通常需要可解釋的模型。僅僅產生預測是不夠的。還希望有信息提供對輸入變量的聯合值與結果預測響應值之間的關係的定性理解。因此,神經網絡等黑盒方法在模式識別等純預測設置中非常有用,但對數據挖掘的用處要小得多。
這些對速度、可解釋性和數據混亂性質的要求極大地限制了大多數學習過程作為數據挖掘的現成方法的有用性。“現成”方法是一種可以直接應用於數據的方法,無需大量耗時的數據預處理或仔細調整學習過程。
在所有眾所周知的學習方法中,決策樹最接近於滿足作為數據挖掘的現成程序的要求。它們的構建速度相對較快,並且可以生成可解釋的模型(如果樹很小)。如第 9.2 節所述,它們自然地包含了數字和分類預測變量和缺失值的混合。它們在各個預測變量的(嚴格單調)變換下是不變的。因此,縮放和/或更一般的轉換不是問題,它們不受預測異常值的影響。他們執行內部特徵選擇作為過程的一個組成部分。因此,即使不是完全免疫,它們也能抵抗包含許多不相關的預測變量。
樹有一個方面阻止它們成為預測學習的理想工具,即不准確性。它們很少能提供與手頭數據所能達到的最佳水平相媲美的預測準確性。如第 10.1 節所示,提升決策樹通常會顯著提高其準確性。同時,它保留了數據挖掘所需的大部分特性。通過提升犧牲的樹的一些優勢是速度、可解釋性,以及對於 AdaBoost 而言,對重疊類分佈的魯棒性,尤其是訓練數據的錯誤標記。梯度提升模型 (GBM) 是樹提升的推廣,它試圖緩解這些問題,從而為數據挖掘提供準確有效的現成程序。”
抱歉,引用很長,但我認為它解釋了他們只尋址樹的理由/藉口。他們繼續推導出使用樹的 Boosting 算法,解釋他們必須找到哪些參數才能使其工作,在我在其他地方看到的稱為“函數空間”的上下文中定義最速下降(f = {f(x 1 ), f(x 2 ), … f(x N )}),解釋瞭如何將它們在集成中的下一個分類器約束到與最速下降“方向”具有相似輸出的樹上,比僅僅添加最速下降更能概括直接函數(某種正則化正在進行?),然後定義一個算法。
但是他們忽略了一個事實,即我們經常希望在純預測的背景下使用 Boosting。很高興我們在使用樹的 GradientBoosting 時看到瞭如此驚人的性能提升,但是我們習慣於 Boosting 能夠處理的其他弱學習器呢?
沒有原則性的理由不能用其他一些低偏差、高方差的學習器(如小型神經網絡)來代替決策樹。它肯定會改變步驟 2.b。和 2.c。他們的算法10.3。它也可能會更改步驟 1 的初始化。但它可以完成!不過,我不確定文獻中是否存在任何常見或流行的算法。當我尋找他們時,我遇到了你的問題。可能是樹更容易訓練並且作為一個整體具有可證明的低風險,以至於沒有人期望其他任何東西能夠做得更好?