【问题标题】:weight calculation of individual tree in XGBoost when using "binary:logistic"使用“binary:logistic”时 XGBoost 中单个树的权重计算
【发布时间】:2016-09-09 20:14:45
【问题描述】:

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

【问题讨论】:

    标签: r decision-tree logistic-regression xgboost


    【解决方案1】:

    其实这很实用,我之前已经监督过了。

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

    参数列表是:

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

    对于leaf booster[0]中设置的实例,leaf: 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 的训练有素的提升树用于不同环境进行预测时,这可以提供生产级解决方案。

    对此的任何评论将不胜感激。

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 2017-09-26
      • 2020-10-26
      • 2020-10-31
      • 2019-01-09
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多