在 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_factors
和max_after_balance_size
。)
我的直觉是,您建议使用一个模型的输出来加权第二个模型是危险的。这听起来有点像堆叠集成的想法,但手工编码和自定义代码更容易出现错误。 (但是,如果你真的尝试过,看看代码和结果会很有趣。)
为了最大限度地提高精度,我会使用一个整体,并努力制作 3 或 4 个具有不同优势和劣势的模型。例如。一个 GBM、一个 GLM、一个具有所有默认值的深度学习模型,然后是一个使用 dropout(以及更多隐藏节点以进行补偿)的深度学习模型。
【讨论】:
应该是使用 weights_column 插入权重的想法吗?例如,正面示例应该比负面示例具有更高的权重,以便将重点放在真正的正面。以上是关于在 H2O 随机森林和 xgboost 中使用权重列的主要内容,如果未能解决你的问题,请参考以下文章
R语言基于h2o包构建二分类模型:使用h2o.randomForest构建随机森林模型使用h2o.auc计算模型的AUC值