我必须使用梯度引导决策树在Python中构建一个分类模型,并获得模型参数(节点处的值)以在硬件上实现。据我所知,梯度增强决策树的最终结果是一个具有阈值的普通决策树分类器,用于对输入数据进行分类。
我读过以下文章:
1-Extracting decision rules from GradientBoostingClassifier
2-how to extract decision rules of GradientBosstingClassifier
正如他们提到的,
model.estimators_包含模型所包含的所有单个分类器。对于GradientBoostingClassifier,这是一个带有形状的二维numpy数组(n_estimators,n_classes),每个项都是一个DecisionTreeRegressor。
在建立梯度决策树分类器的过程中,给出了作为估计器的每个决策树的阈值获取方法。我不确定model.estimators是否包含最终的决策树。有关集成分类器的科学知识文档也没有提到它。
请帮助我如何提取最终的参数(节点的值)梯度增强决策树模型,从科学知识学习。或者,如果我误解了什么有关梯度提升DT在科学-学习,请让我知道。
发布于 2019-04-23 08:42:38
我不确定
model.estimators是否包含最终的决策树.或者如果我误解了关于梯度增强DT的一些东西
似乎您确实误解了一个关键的细节:在GBT中有而不是任何“最终”决策树;GBT的工作方式大致如下:
根据你的评论:
我的目标是得到给出最佳分类结果的树的参数。
同样,这与增强没有任何关系,正如你在下一个评论中正确指出的那样,每一棵树都是按顺序生长的,每一棵树都专注于以前的“错误”;但是
所建立的模型是一个决策树。
不正确吗,正如我已经解释过的(最后的模型是整个加性集成)。因此,在这里选择任何一棵树都是没有意义的。
鉴于这些澄清,您链接到的第一个线程准确地给出了如何提取集合中所有树的规则(阈值)(老实说,这并不知道它在实践中是否真的有用)。
https://stackoverflow.com/questions/55806549
复制相似问题