R中的xgBoost中的人类可读规则 [英] human readable rules from xgboost in R
本文介绍了R中的xgBoost中的人类可读规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
library(xgboost)
library(Matrix)
labels <- data.frame(labels = sample.int(2, m*1, TRUE)-1L)
observations <- Matrix(as.matrix(data.frame(feat_01=sample.int(2, size=100, T) -1,
feat_02=sample.int(2, size=100, T) -1,
feat_03=sample.int(2, size=100, T) -1,
feat_04=sample.int(2, size=100, T) -1,
feat_05=sample.int(2, size=100, T) -1)), sparse=T)
dtrain <- xgb.DMatrix(data = observations, label = labels$labels)
bstResult <- xgb.train(data = dtrain,
nthread = 1,
nround = 4,
max_depth = 3,
verbose = T,
objective = "binary:logistic",
booster='gbtree')
xgb.dump(bstResult)
xgb.plot.tree(model = bstResult, n_first_tree = 2)
我将数据可视化为xgb.ump或xgb.plot.tree。但我需要以下形式的数据:
规则1:FEAT_01==1&;FEAT_02==1&;FEAT_03==0-->LABEL=1
规则2:FEAT_01==0&;FEAT_03==1&;FEAT_04==1-->Label=0
这是可能的吗?还是我走错了路?
问候 Heiko
编辑:添加了示例,并尝试将问题做得更好
推荐答案
一方面,我认为您可以使用重要性矩阵来获得每个功能的覆盖率和排名。另一方面,XgBoost使用了一个使用袋装的弱学习者集合,规则应该是"罕见的"
这篇关于R中的xgBoost中的人类可读规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文