使用“binary:logistic”时XGBoost中单个树的权重计算

时间:2016-05-13 14:55:29

标签: r decision-tree logistic-regression xgboost

How to access weighting of indiviual decision trees in 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

1 个答案:

答案 0 :(得分:2)

实际上这是我以前监督过的实用。

使用上面的树结构,可以找到每个训练样例的概率。

参数列表是:

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))。

对于助推器[0],叶子:0-3 +助推器[1],叶子:0-3; 概率为exp(0.872727+ 0.582471)/(1 + exp(0.872727+ 0.582471))。

等等,随着迭代次数的增加。

我将这些值与R的预测概率相匹配,它们在10 ^( - 7)中有所不同,可能是由于叶质量得分的浮点缩减。

这可能不是找到权重的答案,但是当R的训练增强树在不同环境中用于预测时,这可以提供生产水平解决方案。

对此的任何评论都将受到高度赞赏。