python - Ngboost 算法可以自动处理缺失值吗?
问题描述
我得到了一个由 stanfordmlgroup 发明的名为 Ngboost 的新 GBDT 算法。我想使用它并调用编码
pip install ngboost==0.2.0
安装它。然后我训练一个不估算或删除缺失值的数据集。但是我收到一个错误:
Input contains NaN, infinity or a value too large for dtype('float32').
这是否意味着 Ngboost 无法像 xgboost 那样自动处理缺失值?
解决方案
这是 ngboost 的一位创建者对此的回应
嘿@omsuchak,谢谢你的建议。没有一种“自然”或好的方法可以通用地处理丢失的数据。如果 ngboost 为您执行此操作,我们将在幕后做出许多用户无法看到的选择。
如果我们将自己限制在基本学习器是回归树的用例(就像我们对特征重要性所做的那样),那么对于如何处理缺失数据,有一些合理的默认选择。在这里实施这些策略可能并不难做到,但这也不是一项简单的任务。无论哪种方式,我都希望用户对正在发生的事情有一个透明的选择。我愿意审查这方面的拉取请求,因为它们满足该要求,但这不是我计划在可预见的将来自己做的事情。我现在将关闭,但如果有人想尝试添加此内容,请随时发表评论。
然后您可以看到有关如何解决该问题的其他答案,例如使用 sklearn.impute.MissingIndicator 模块(向模型指示缺失的存在)或一些 Imputer 模块。
如果您需要一个实际示例,您可以尝试使用生存示例(位于repo中!)。
推荐阅读
- java - 递归函数打印大的非预期值。尝试打印 Instructions.l 请求的递归值
- javascript - Vue 无法与 html 一起正常工作(在不应该按下按钮时刷新)
- reactjs - 在 React 应用程序中注册提交时将 displayName 添加到新的 Firebase Auth 配置文件
- php - 如何从具有多个属性的元素中获取属性值
- python - 如何在txt文件的变量中写入字符串
- javascript - 如何使用节点 js 将 S3 连接到 Amazon Textract
- python - 为坐标提供位置参数并将它们聚集在一起
- javascript - 使用 REST API 上传后“cors”类型的错误云响应(来自 React)
- sql - 带有两个表的内部联接查询
- android - android.preference.Preference.setOnPreferenceClickListener() 不起作用