% matplotlib inline
Demo for obtaining leaf index
import os
import xgboost as xgb
dtrain = xgb. DMatrix( './data/agaricus.txt.train' )
dtest = xgb. DMatrix( './data/agaricus.txt.test' )
param = { 'max_depth' : 2 , 'eta' : 1 , 'objective' : 'binary:logistic' }
watchlist = [ ( dtest, 'eval' ) , ( dtrain, 'train' ) ]
num_round = 20
bst = xgb. train( param, dtrain, num_round, watchlist)
print ( 'start testing predict the leaf indices' )
[0] eval-logloss:0.22669 train-logloss:0.23338
[1] eval-logloss:0.13787 train-logloss:0.13666
[2] eval-logloss:0.08046 train-logloss:0.08253
[3] eval-logloss:0.05833 train-logloss:0.05647
[4] eval-logloss:0.03829 train-logloss:0.04151
[5] eval-logloss:0.02663 train-logloss:0.02961
[6] eval-logloss:0.01388 train-logloss:0.01919
[7] eval-logloss:0.01020 train-logloss:0.01332
[8] eval-logloss:0.00848 train-logloss:0.01113
[9] eval-logloss:0.00692 train-logloss:0.00663
[10] eval-logloss:0.00544 train-logloss:0.00504
[11] eval-logloss:0.00445 train-logloss:0.00420
[12] eval-logloss:0.00336 train-logloss:0.00356
[13] eval-logloss:0.00277 train-logloss:0.00281
[14] eval-logloss:0.00252 train-logloss:0.00244
[15] eval-logloss:0.00177 train-logloss:0.00194
[16] eval-logloss:0.00157 train-logloss:0.00161
[17] eval-logloss:0.00135 train-logloss:0.00142
[18] eval-logloss:0.00123 train-logloss:0.00125
[19] eval-logloss:0.00107 train-logloss:0.00107
start testing predict the leaf indices
D:\d_programe\Anaconda3\lib\site-packages\xgboost\core.py:525: FutureWarning: Pass `evals` as keyword args. Passing these as positional arguments will be considered as error in future releases.
warnings.warn(
leafindex = bst. predict(
dtest, iteration_range= ( 0 , 2 ) , pred_leaf= True , strict_shape= True
)
print ( leafindex. shape)
(1611, 2, 1, 1)
print ( leafindex)
[[[[4.]]
[[3.]]]
[[[3.]]
[[3.]]]
[[[4.]]
[[3.]]]
...
[[[3.]]
[[3.]]]
[[[5.]]
[[4.]]]
[[[3.]]
[[3.]]]]
leafindex = bst. predict( dtest, pred_leaf= True )
print ( leafindex. shape)
(1611, 20)