我花了很多时间试图找出XGBClassifier()中这些“子样本”,“ colsample_by_tree”和“ colsample_bylevel”的实际作用,但是我无法确切地了解它们的作用。有人可以简要解释一下他们在做什么吗?
谢谢!
答案 0 :(得分:0)
“子样本”,“ colsample_by_tree”和“ colsample_bylevel”的思想来自随机森林。 在其中,您可以构建许多树木的集合,然后在进行预测时将它们分组在一起。
“随机”部分是通过对每棵树的训练样本进行随机采样(引导),然后仅考虑属性的随机子集来构建每棵树(实际上是每棵树的节点)。
换句话说,对于随机森林中的每棵树,您:
类似于随机森林,XGB是一组弱模型,将它们放在一起可以给出可靠而准确的结果。 弱模型可以是决策树,可以以与随机森林相同的方式将其随机化。 在这种情况下:
答案 1 :(得分:0)
希望有人会发现我的回答有帮助:
colsample_bytree
- 创建新树时列的随机子样本colsample_bylevel
- 达到每个新的新级别时列的随机子样本。 IE。您有 3 个级别的树,在第 1 个级别 A 和 B 被选择,在第二个 B 和 C 等。
注意:此采样基于第一个 (colsample_bytree)。colsample_bynode
- 基于每次拆分(向左或向右转向)的列的随机子样本。因此,如果该级别具有左右拆分,则每个级别可能有 2 个不同的子样本。
注意:此抽样基于 №2,因为 №2 基于 №1。文档:https://xgboost.readthedocs.io/en/latest/parameter.html
CMND+F
以下内容,您将找到该部分:
colsample_bytree, colsample_bylevel, colsample_bynode [default=1]