促进和袋装树木(XGBoost,LightGBM)
有很多关于袋装 或 助树的想法的博客文章,YouTube视频等。我的一般理解是,每个的伪代码为: 套袋: 取N个随机样本,占样本的x%和特征的y% 在每个N上拟合您的模型(例如决策树) 预测每个N 对预测取平均以得出最终预测 提升: 使模型(例如决策树)适合您的数据 获取残差 使模型适合残差 进行2次N轮助推 最终预测是顺序预测变量的加权和。 我将对上面的理解进行任何澄清,但是我想要的问题如下: XGBoost和LightGBM都具有允许打包的参数。该应用程序不是Bagging OR Boosting(每篇博客文章都在谈论),而是Bagging AND Boosting。在何时何地进行装袋和装袋的伪代码是什么? 我以为它是“袋装升压树”,但似乎是“升压袋装树”。差异似乎很大。 袋装助推树: 取N个随机样本,占样本的x%和特征的y% 在N个样本中的每个样本上拟合Boosted树 预测每个N 对预测取平均以得出最终预测 这似乎是最好的方法。毕竟,增加压力的风险是过度安装,装袋的主要好处是减少过度安装;打包一堆增强模型似乎是个好主意。 但是,通过浏览(例如,scikit-learn gradient_boosting.py(用于示例装袋,但不选择随机特征)),并在有关LightGBM和XGBoost的帖子中整理一些小块,看起来XGBoost和LightGBM的工作方式如下: 增强袋装树: 使决策树适合您的数据 对于我在N轮助推中: 获取残差 如果我mod bag_frequency == 0(即每5轮装袋): 取一个随机样本,占样本的x%和特征的y%;继续使用此随机样本 使树适合残差 最终预测是顺序预测变量的加权和。 请在这里更正我的理解并填写详细信息。Boosted Bagged树(每个bag_frequency仅包含1个随机树)似乎不如Bagged Boosted Tree强大。