Machine-Learning

將功能擴展到 xgboost 有什麼影響?

  • June 27, 2018

在研究 xgboost 算法時,我瀏覽了文檔

聽說xgboost不太關心輸入特徵的規模

在這種方法中,樹使用複雜度定義進行正則化

在哪裡和是參數,是終端葉子的數量和是每片葉子的得分。 那麼,在輸入 xgboost 之前擴展功能不是很重要嗎?成本函數正則化部分中的項直接受特徵規模的影響

XGBoost 對其特徵的單調變換不敏感,原因與決策樹和隨機森林不敏感的原因相同:模型只需要在特徵上選擇“切點”來分割節點。拆分對單調變換不敏感:在一個尺度上定義拆分在變換後的尺度上具有相應的拆分。

你的困惑源於誤解 $ w $ . 在“模型複雜性”一節中,作者寫道

這裡 $ w $ 是葉子上的分數向量…

分數衡量葉子的重量。請參閱“樹合奏”部分中的圖表;作者將葉子下方的數字標記為“分數”。

分數圖

分數也在你的表達式前面的段落中更精確地定義 $ \Omega(f) $ :

我們需要定義樹的複雜度 $ \Omega(f) $ . 為了做到這一點,讓我們首先細化樹的定義 $ f(x) $ 作為 $$ f_t(x)=w_{q(x)}, w \in R^T, q:R^d \to {1,2,\dots,T}. $$ 這裡 $ w $ 是葉子上的分數向量, $ q $ 是將每個數據點分配給相應葉的函數,並且 $ T $ 是葉子的數量。

這個表達式的意思是 $ q $ 是一個分割函數 $ R^d $ , 和 $ w $ 是與每個分區關聯的權重。分區 $ R^d $ 可以通過坐標對齊的拆分來完成,而坐標對齊的拆分是決策樹。

的含義 $ w $ 是它是一個選擇的“權重”,使得新樹的集合的損失低於沒有新樹的集合的損失。這在文檔的“結構分數”部分中進行了描述。一片葉子的分數 $ j $ 是(誰)給的

$$ w_j^* = \frac{G_j}{H_j + \lambda} $$

在哪裡 $ G_j $ 和 $ H_j $ 是損失函數的偏導數函數的總和,對樹的預測 $ t-1 $ 對於樣本中的 $ j $ 葉。(詳見“附加訓練”。)

引用自:https://stats.stackexchange.com/questions/353462

comments powered by Disqus