决策树分类器如何处理全局约束?
Posted
技术标签:
【中文标题】决策树分类器如何处理全局约束?【英文标题】:How can a decision tree classifier work with global constraints? 【发布时间】:2019-06-13 11:17:09 【问题描述】:我用 Python 中的 sklearn 生成了一个决策树分类器,在准确度方面效果很好。我用线性程序的最佳解决方案训练分类器,它返回项目到类的最优分配,同时考虑到全局成本约束(即,将项目 1 分配给类 A 的成本为 x。总产生的成本在所有items 和 classes 必须小于值 y)。
在使用分类器重新分类所有项目后,虽然准确度可以接受,但在大多数分类运行中都违反了全局成本约束。自然如此,因为 python 中 sklearn 的标准决策树不考虑约束。
有没有办法将全局约束纳入分类之后维护?在做出下一个分配选择时,有没有办法强制树考虑所有已经分类的项目?我认为这需要建立某种成本或惩罚函数,以便在树分类期间进行检查。
【问题讨论】:
【参考方案1】:在 sklearn 中实现的决策树仅基于考虑基尼系数、熵或信息增益的分割标准构建。无法自定义损失函数。
但是,XGboost、LightGBM 和 CatBoost 等梯度增强树允许指定您自己的损失函数。可以在此处找到教程: https://towardsdatascience.com/custom-loss-functions-for-gradient-boosting-f79c1b40466d
然后,您可以将违反约束的惩罚项合并到损失函数中。
【讨论】:
非常感谢您的评论,@jonnor!非常有帮助,非常感谢!以上是关于决策树分类器如何处理全局约束?的主要内容,如果未能解决你的问题,请参考以下文章