我的数据集缺失值很大(缺失超过40%)。在xgboost和H2o梯度增强中生成了一个模型 - 在两种情况下都得到了一个不错的模型。但是,xgboost将此变量显示为模型的关键贡献者之一,但根据H2o Gradient Boosting,变量并不重要。 xgboost是否以不同方式处理缺失值的变量。两个模型的所有配置都完全相同。
答案 0 :(得分:4)
两种方法的缺失值处理和变量重要性都略有不同。两者都将缺失值视为信息(即,他们从中学习,并且不仅仅用简单的常数来估算)。变量重要性是从树构造期间各自损失函数的增益计算出来的。 H2O使用平方误差,XGBoost使用基于渐变和粗糙度的更复杂的误差。
您可以检查的一件事是不同种子与不同种子之间的变量重要性的变化,以了解每种方法在变量重要性方面的稳定性。
PS。如果您有分类,那么最好将该列作为H2O的一个因素,不需要进行自己的编码。这可能会导致列与XGBoost数据集的有效计数不同,因此对于列采样,情况会有所不同。