在我的Xgboost机器学习模型中,当功能具有0重要性时,您应该丢弃它们还是将它们组合在一起?

问题描述 投票:0回答:1

我一直在尝试构建一个ML模型,它预测不同产品通过部署管道所需的时间。我创建了大约30-40个不同的功能,90%是分类和10%的数字功能。例如,我有一个功能“产品类别”,可以采取5个不同的值。然后我为我的所有分类变量创建虚拟变量,最后我得到大约200-300个变量。

我已经训练了XGboost模型并检查了特征的重要性,并注意到我的大多数特征的重要性都在<0.001左右,其中很多,大约30个是0.我该如何处理这些信息?我应该删除这些变量(例如减少一半的产品类别),还是将所有变量分组到“其他”类别中?处理此问题的任何提示或标准方法?

编辑:我的超级参数。

xgb = xgboost.XGBRegressor(
    max_depth = 11,
    n_estimators= 150,
    min_child_weight= 1,
    eta= .3,
    subsample= 0.9,
    gamma= 0.1,
   colsample_bytree= 0.9,
   objective= 'reg:gamma'
   )
machine-learning xgboost feature-selection
1个回答
0
投票

我猜你的数据很稀疏。如果你提到你为你的模型使用的超参数会很有帮助,例如max_depth。通常,tress对于多个功能非常强大,但在GBM中我们使用的是弱学习者。因此,如果您构建的树的数量少于特征的数量,则模型无法理解所有特征的重要性。

© www.soinside.com 2019 - 2024. All rights reserved.