在 H2O 随机森林和 xgboost 中使用权重列

Posted

技术标签:

【中文标题】在 H2O 随机森林和 xgboost 中使用权重列【英文标题】:Using Weights Column in H2O random forest and xgboost 【发布时间】:2018-01-11 05:15:15 【问题描述】:

我正在尝试最大限度地提高二进制分类问题的精度(误报成本很高)。数据集也确实不平衡。两次运行 DRF 或 XGBOOST 模型是否有意义,第二次使用权重列以抵消误报?

除了这种潜在的方法之外,这些 H2O 算法中是否还有其他方法可以最大限度地提高精度(而不是对数损失)?我还将使用一个合奏(这似乎确实提高了精度)。交叉验证似乎没有帮助。

【问题讨论】:

【参考方案1】:

首先我会使用balance_classes(将其设置为true)。对于不平衡的数据,这将有所帮助。 (如果您需要更好地控制,请查看class_sampling_factorsmax_after_balance_size。)

我的直觉是,您建议使用一个模型的输出来加权第二个模型是危险的。这听起来有点像堆叠集成的想法,但手工编码和自定义代码更容易出现错误。 (但是,如果你真的尝试过,看看代码和结果会很有趣。)

为了最大限度地提高精度,我会使用一个整体,并努力制作 3 或 4 个具有不同优势和劣势的模型。例如。一个 GBM、一个 GLM、一个具有所有默认值的深度学习模型,然后是一个使用 dropout(以及更多隐藏节点以进行补偿)的深度学习模型。

【讨论】:

应该是使用 weights_column 插入权重的想法吗?例如,正面示例应该比负面示例具有更高的权重,以便将重点放在真正的正面。

以上是关于在 H2O 随机森林和 xgboost 中使用权重列的主要内容,如果未能解决你的问题,请参考以下文章

h2o 随机森林中的排列重要性

r 上的 H2o 随机森林图

xgboost 包和随机森林回归

在 h2o 随机森林中用于“重要性”的度量是啥

用 XGBoost 开发随机森林集成

R语言基于h2o包构建二分类模型:使用h2o.randomForest构建随机森林模型使用h2o.auc计算模型的AUC值