2016-05-13 2 views
0

キューを取るHow to access weighting of indiviual decision trees in xgboost?。 objective = "binary:logistic"、eta = 0.1のときの重みの計算方法は?"バイナリ:ロジスティック"使用時のXGBoostにおける個々のツリーの重み計算

マイツリーダンプは次のとおりです。

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

実はこれは私が以前に監督ている実用的でした。

上記のツリー構造を使用すると、各トレーニング例の確率を見つけることができます。

パラメータリストは次の通りであった:葉ブースタに設定たとえば

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))になります。

このように、反復回数が増えるにつれて、

私はこれらの値を10 ^( - 7)で異なるRの予測確率とマッチさせました。おそらく、リーフ品質スコアの浮動小数点縮小に起因します。

これは検出重みに対する答えではないかもしれませんが、Rの訓練されたブーストされた木が異なる環境で予測のために使用される場合、これは生産レベルの解を与えることができます。

これに関するご意見は高く評価されます。

関連する問題