R中的xgBoost中的人类可读规则 [英] human readable rules from xgboost in R

查看:0
本文介绍了R中的xgBoost中的人类可读规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在R中使用xgBoost从我的数据中获取规则(Gbtree),这样我就可以在其他系统中使用这些规则(而不是带有‘Forecast’的预测数据)。输入数据具有很高的可信度。包含二进制稀疏数据的1500列和40 MIO行,标签也是二进制列。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆