xgb.plot.multi.trees Что означает число в скобках? - PullRequest
1 голос
/ 28 апреля 2020

Это не количество деревьев, так как я только обучил 25. Это также не значение переменной. Это видно по шкале значений в скобках, что не имеет смысла, так как многие переменные записываются в журнал. Я проверил документацию и не было никаких объяснений. Любые идеи или другие ссылки?

df1 <- xgb.train(data = X_train_dmat, 
               eta = 0.1,
               max_depth = 5, 
               nround=25, 
               subsample = 0.5,
               colsample_bytree = 0.5,
               booster = 'gbtree',
               objective = 'reg:squarederror',
               nthread = 3
)

xgb.plot.multi.trees(model = df1, 
                     features_keep = 5, 
                     use.names=FALSE,
                     plot_width = NULL,
                     plot_height = NULL,
                     render = TRUE
                     )

1 Ответ

1 голос
/ 28 апреля 2020

Глядя на исходный код, https://github.com/dmlc/xgboost/blob/master/R-package/R/xgb.plot.multi.trees.R#L94, эта часть создает узлы в дереве:

  nodes.dt <- tree.matrix[
        , .(Quality = sum(Quality))
        , by = .(abs.node.position, Feature)
      ][, .(Text = paste0(Feature[1:min(length(Feature), features_keep)],
                          " (",
                          format(Quality[1:min(length(Quality), features_keep)], digits=5),
                          ")") %>%
                   paste0(collapse = "\n"))
        , by = abs.node.position]

В частности, этот код записывает эти числа:

format(Quality[1:min(length(Quality), features_keep)], digits=5)

Итак, эти числа показывают качество каждого узла, что, как мне кажется, отражает, насколько правильно этот узел делит данные. Прошло много времени с тех пор, как я имел дело с этими моделями, и я никогда не был подкованным, поэтому я не могу быть уверен в своей интерпретации. Если вам нужны дополнительные объяснения значения качества, вы можете глубже изучить исходный код, чтобы выяснить, как он рассчитывается.

...