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