xgboost 如何处理 inf 或 -inf 值?

数据挖掘 决策树 数据清理 xgboost
2022-02-05 19:16:41

我正在使用 xgboost 进行二进制分类。我的数据中有 infs 和 -infs,因为我正在计算一个 col 和另一个 col 的比率,例如df[col1]/df[col2]. 由于我在这些列中有零和 nan,这导致我得到 infs、-infs 和 nan。

我知道 xgboost 可以处理 nan 值,但是如果我将 infs 替换为非常大的数字,例如 -inf 的 99999 或 -99999,这对 xgboost 来说是个问题吗?我的理解是基于树的分类方法不受“异常值”/inf 值的影响。

处理这些问题的最佳方法是什么?

1个回答

因为(大多数)基于树的方法只关心每个特征中值的顺序,所以用非常大的值(大于特征的任何有限值)替换无限值就可以了。当然,您必须考虑是否df[col1]/df[col2]实际上应该被视为±infwhencol2为零,nans 可​​以留给 xgboost。