1. 程式人生 > >隨機森林和GBDT的幾個核心問題

隨機森林和GBDT的幾個核心問題

隨機森林random forest的pro和con是什麼?
優勢是accuracy高,但缺點是速度會降低,並且解釋性interpretability會差很多,也會有overfitting的現象。
為什麼要最大化information gain?
從root到leaf,使得各class distribution的Entropy不斷減低。如果相反的話,就會增加預測的不確定性。

熵entrophy的意義是什麼?
首先資訊量的大小和可能情況的對數函式取值有關係。變數的不確定情況越大,熵越大。

如何避免在隨機森林中出現overfitting?
對樹的深度的控制也即對模型複雜度的控制,可以在一定程度上避免overfitting,簡言之就是shallow tree。此外就是prune,把模型訓練比較複雜,看合併節點後的subtree能否降低generation error。隨機選擇訓練集的subset,也可以實現避免overfitting。


Bagging的代價是什麼?
Bagging的代價是不用單次決策樹來做預測,具體哪個變數起到重要作用變得未知,所以bagging改進了預測準確率但損失瞭解釋性。

Random forest和bagged tree的區別是什麼?
隨機森林的構建過程中,當考慮每個split時,都只從所有p個樣本中選取隨機的m個樣本,作為split candidate。特別的m大概會取p的平方差。其核心目的是decorrelate不同的樹。bagged tree和random forest的核心區別在於選擇subset的大小。

什麼是GBDT?
通過boosting的方法迭代性的構建week decision tree的ensemble。其優勢是不需要feature normalization,feature selection可以在學習過程中自動的體現。並且可以指定不同的loss function。但是boosting是一個sequential process,並非並行化的。計算非常intensive,對高維稀疏資料的feature vector表現相當poor。


GBDT訓練的步驟是什麼?
使用information gain來獲得最好的split。然後根據best split來partition資料。低於cut的資料分至left node,高於cut的資料分至right node。接下來進行boosting,梯度函式可以有多種形式,Gradient是下一棵樹的目標。

MapReduce如何實現GBDT呢?
每一個mapper得到<feature value> 以及<residual weight>。reducer積累cuts並且sort。Split資料依據cut,並且輸出到DFS。

Classification tree和Regression tree的區別是什麼?

迴歸樹的output label是continnuous,而分類樹的output label是離散的。因此目標函式也要做相應的調整。特別的regression tree所給出的是probabilistic, non-linear regression,regression tree可以associate未知的獨立的測試資料和dependent,continuous的預測。