Ngboost算法可以自动处理缺失值吗?

我得到了由stanfordmlgroup发明的名为Ngboost的新GBDT算法。我想使用它并调用编码

pip install ngboost==0.2.0

进行安装。 然后,我训练不会插补或删除缺失值的数据集。 但是我得到一个错误:

Input contains NaN,infinity or a value too large for dtype('float32').

这是否意味着Ngboost无法像xgboost一样自动处理缺失值?

iCMS 回答:Ngboost算法可以自动处理缺失值吗?

此错误有两种可能。

1-您的价值很高。检查列的最大值。

2-该算法不支持NAN和inf类型,因此您必须像处理其他一些回归模型一样处理它们。

,

Here是一位ngboost创作者对此的回应

嘿@omsuchak,谢谢您的建议。没有一种“自然”的或好的方法来处理丢失的数据。如果ngboost为您做到这一点,我们将在幕后做出很多选择,而这些选择会被用户所遮盖。

如果我们将自己限制为只使用基础学习者是回归树的情况(就像我们对功能重要性所做的那样),那么对于缺失数据的处理方式有一些合理的默认选择。在这里实施这些策略可能并非难事,但也不是一件容易的事。无论哪种方式,我都希望用户对正在发生的事情有一个透明的选择。我愿意在满足这一要求的同时审查拉动请求,但是我不打算在可预见的将来为自己工作。我现在将关闭,但如果有人想添加此内容,请随时发表评论。

然后您可以看到有关如何解决该问题的其他答案,例如使用sklearn.impute.MissingIndicator模块(向模型指示缺失的存在)或某个Imputer模块。

如果您需要实际示例,可以尝试生存示例(位于repo!)。

本文链接:https://www.f2er.com/1969846.html

大家都在问