2017-06-21 79 views
1

我有一個數據集有一個很大的缺失值(缺少40%以上)。在xgboost和H2o漸變增強中創建了一個模型 - 在這兩種情況下都獲得了一個體面的模型。但是,xgboost將此變量顯示爲模型的關鍵貢獻者之一,但按照H2o漸變提升變量並不重要。 xgboost是否以不同的方式處理具有缺失值的變量。對兩個模型的所有配置都完全相同。xgboost vs H2o梯度提升

回答

4

這兩種方法的缺失值處理和變量重要性略有不同。兩者都把缺失的價值當作信息來對待(即他們從中學習,而不只是用簡單的常數進行估算)。變量重要性是在樹構建期間從它們各自損失函數的增益中計算出來的。 H2O使用平方誤差,XGBoost使用基於梯度和Hessian的更復雜的錯誤。

您可以檢查的一件事是不同種子的不同運行之間的變量重要性的方差,以查看每種方法在變量重要性方面的穩定性。

PS。如果你有分類,那麼你最好離開柱子作爲H2O的一個因子,不需要做自己的編碼。這可能會導致列與XGBoost數據集的有效計數不同,因此對於列採樣,情況會有所不同。