簡體   English   中英

使用“ binary:logistic”時,XGBoost中單個樹的權重計算

[英]weight calculation of individual tree in XGBoost when using “binary:logistic”

如何在xgboost中訪問單個決策樹的權重中獲得啟示? 當objective =“ binary:logistic”且eta = 0.1時,如何計算權重?

我的樹堆是:

booster[0]
0:[WEIGHT<3267.5] yes=1,no=2,missing=1,gain=133.327,cover=58.75
    1:[CYLINDERS<5.5] yes=3,no=4,missing=3,gain=9.61229,cover=33.25
        3:leaf=0.872727,cover=26.5
        4:leaf=0.0967742,cover=6.75
    2:[WEIGHT<3431] yes=5,no=6,missing=5,gain=4.82912,cover=25.5
        5:leaf=-0.0526316,cover=3.75
        6:leaf=-0.846154,cover=21.75
booster[1]
0:[DISPLACEMENT<231.5] yes=1,no=2,missing=1,gain=60.9437,cover=52.0159
    1:[WEIGHT<2974.5] yes=3,no=4,missing=3,gain=6.59775,cover=31.3195
        3:leaf=0.582471,cover=25.5236
        4:leaf=-0,cover=5.79593
    2:[MODELYEAR<78.5] yes=5,no=6,missing=5,gain=1.96045,cover=20.6964
        5:leaf=-0.643141,cover=19.3965
        6:leaf=-0,cover=1.2999

實際上,這是我之前所監督的實用方法。

使用上述樹結構,可以找到每個訓練示例的概率。

參數列表為:

param <- list("objective" = "binary:logistic",
              "eval_metric" = "logloss",
              "eta" = 0.5,
              "max_depth" = 2, 
              "colsample_bytree" = .8,
              "subsample" = 0.8,
              "alpha" = 1)

對於在葉子增強器[0]中設置的實例,葉子:0-3; 概率將為exp(0.872727)/(1 + exp(0.872727))。

對於booster [0],葉子:0-3 + booster [1],葉子:0-3; 概率為exp(0.872727+ 0.582471)/(1 + exp(0.872727+ 0.582471))。

隨着迭代次數的增加,依此類推。

我將這些值與R的預測概率進行了匹配,它們的差異在10 ^(-7)之間,這可能是由於降低了葉子質量得分而導致的浮點縮減。

這可能不是找到權重的答案,但是當在不同環境中使用R訓練有素的增強樹進行預測時,這可以提供生產級別的解決方案。

任何對此的評論將不勝感激。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM