酷播亮新聞
最棒的知識補給站

RF、GBDT、XGBoost面試級整理

RFGBDT和XGBoost都屬於整合學習(Ensemble Learning),整合學習的目的是通過結合多個基學習器的預測結果來改善單個學習器的泛化能力和魯棒性。

根據個體學習器的生成方式,目前的整合學習方法大致分為兩大類:即個體學習器之間存在強依賴關係、必須序列生成的序列化方法,以及個體學習器間不存在強依賴關係、可同時生成的並行化方法;前者的代表就是Boosting,後者的代表是Bagging和“隨機森林”(Random Forest)。

1、RF1.1 原理

提到隨機森林,就不得不提Bagging,Bagging可以簡單的理解為:放回抽樣,多數表決(分類)或簡單平均(迴歸),同時Bagging的基學習器之間屬於並列生成,不存在強依賴關係。

Random Forest(隨機森林)是Bagging的擴充套件變體,它在以決策樹 為基學習器構建Bagging整合的基礎上,進一步在決策樹的訓練過程中引入了隨機特徵選擇,因此可以概括RF包括四個部分:1、隨機選擇樣本(放回抽樣);2、隨機選擇特徵;3、構建決策樹;4、隨機森林投票(平均)。

隨機選擇樣本和Bagging相同,隨機選擇特徵是指在樹的構建中,會從樣本集的特徵集合中隨機選擇部分特徵,然後再從這個子集中選擇最優的屬 性用於劃分,這種隨機性導致隨機森林的偏差會有稍微的增加(相比於單棵不隨機樹),但是由於隨機森林的‘平均’特性,會使得它的方差減小,而且方差的減小補償了偏差的增大,因此總體而言是更好的模型。

(As a result of this randomness, the bias of the forest usually slightly increases (with respect to the bias of a single non-random tree) but, due to averaging, its variance also decreases, usually more than compensating for the increase in bias, hence yielding an overall better model.)

在構建決策樹的時候,RF的每棵決策樹都最大可能的進行生長而不進行剪枝;在對預測輸出進行結合時,RF通常對分類問題使用簡單投票法,迴歸任務使用簡單平均法。

RF的重要特性是不用對其進行交叉驗證或者使用一個獨立的測試集獲得無偏估計,它可以在內部進行評估,也就是說在生成的過程中可以對誤差進行無偏估計,由於每個基學習器只使用了訓練集中約63.2%的樣本,剩下約36.8%的樣本可用做驗證集來對其泛化效能進行“包外估計”。

RF和Bagging對比:RF的起始效能較差,特別當只有一個基學習器時,隨著學習器數目增多,隨機森林通常會收斂到更低的泛化誤差。隨機森林的訓練效率也會高於Bagging,因為在單個決策樹的構建中,Bagging使用的是‘確定性’決策樹,在選擇特徵劃分結點時,要對所有的特徵進行考慮,而隨機森林使用的是‘隨機性’特徵數,只需考慮特徵的子集。

1.2 優缺點

隨機森林的優點較多,簡單總結:1、在資料集上表現良好,相對於其他演算法有較大的優勢(訓練速度、預測準確度);2、能夠處理很高維的資料,並且不用特徵選擇,而且在訓練完後,給出特徵的重要性;3、容易做成並行化方法。

RF的缺點:在噪聲較大的分類或者回歸問題上回過擬合。

2、GBDT

提GBDT之前,談一下Boosting,Boosting是一種與Bagging很類似的技術。不論是Boosting還是Bagging,所使用的多個分類器型別都是一致的。但是在前者當中,不同的分類器是通過序列訓練而獲得的,每個新分類器都根據已訓練的分類器的效能來進行訓練。Boosting是通過關注被已有分類器錯分的那些資料來獲得新的分類器。

由於Boosting分類的結果是基於所有分類器的加權求和結果的,因此Boosting與Bagging不太一樣,Bagging中的分類器權值是一樣的,而Boosting中的分類器權重並不相等,每個權重代表對應的分類器在上一輪迭代中的成功度。

2.1 原理

GBDT與傳統的Boosting區別較大,它的每一次計算都是為了減少上一次的殘差,而為了消除殘差,我們可以在殘差減小的梯度方向上建立模型,所以說,在GradientBoost中,每個新的模型的建立是為了使得之前的模型的殘差往梯度下降的方法,與傳統的Boosting中關注正確錯誤的樣本加權有著很大的區別。

在GradientBoosting演算法中,關鍵就是利用損失函式的負梯度方向在當前模型的值作為殘差的近似值,進而擬合一棵CART迴歸樹。

GBDT的會累加所有樹的結果,而這種累加是無法通過分類完成的,因此GBDT的樹都是CART迴歸樹,而不是分類樹(儘管GBDT調整後也可以用於分類但不代表GBDT的樹為分類樹)。

2.2 優缺點

GBDT的效能在RF的基礎上又有一步提升,因此其優點也很明顯,1、它能靈活的處理各種型別的資料;2、在相對較少的調參時間下,預測的準確度較高。

當然由於它是Boosting,因此基學習器之前存在序列關係,難以並行訓練資料。

3、XGBoost3.1 原理

XGBoost的效能在GBDT上又有一步提升,而其效能也能通過各種比賽管窺一二。坊間對XGBoost最大的認知在於其能夠自動地運用CPU的多執行緒進行平行計算,同時在演算法精度上也進行了精度的提高。

由於GBDT在合理的引數設定下,往往要生成一定數量的樹才能達到令人滿意的準確率,在資料集較複雜時,模型可能需要幾千次迭代運算。但是XGBoost利用並行的CPU更好的解決了這個問題。

其實XGBoost和GBDT的差別也較大,這一點也同樣體現在其效能表現上,詳見XGBoost與GBDT的區別。

Comments

comments

如有侵權請來信告知:酷播亮新聞 » RF、GBDT、XGBoost面試級整理