machine-learning - 缺失数值的插补,同时保留它的缺失
问题描述
在深入探讨问题本身之前,我将对数据集和问题进行简要说明
数据集
我有一个大约 20000 条记录的数据集,我打算用它来训练一个分类器,将给定的记录分类为“正”或“负”。数据集也非常不平衡,有 5:1 的比例有利于“积极”方面。
数据集中称为“价格”的特征之一,它包含一个货币值(因此 <0)并且有一些缺失值(大约 200)。当我分析数据集时,所有具有 NaN 的“ Price ”行都被归类为“ Negative ”。
问题
估算此列的最佳策略是什么?我想出了以下选项
- 我可以删除这些行,但由于它们都来自“负”类,这似乎不可行
因为它是货币值,所以用一个极值(例如 -1000.00)来估算它。虽然它可能在这种情况下工作。如果该值也取负值,它将不起作用。我希望学习一种更通用的方法来解决这个问题。
使用诸如“平均”或“最近邻居”之类的策略将其归为正常,这仍然会影响性能,因为大多数类都是“正”的
我可以添加一个名为“wasCompleted”的新列,如果“价格”功能有值,则值为 1,如果没有,则值为 0。并且仍然选择(2)或(3)之类的选项。这仍然无法解决这些策略中的任何问题
考虑到这种情况,考虑估算这些值的最佳选择是什么?
解决方案
至少还有一个选项需要考虑:
- 保持原样,使用 ML 方法,它可以比使用任何类型的插补或创建附加特征更好地处理缺失值。这种方法例如是LightGMB。
推荐阅读
- c++ - GNU 链接器:适应名称修改算法的更改
- java - Java - 下拉组件显示
- tensorflow - Theano / Pytorch / Tensorflow 可以自动计算以下梯度吗?
- python - 稀疏张量上的行或元素选择
- git-merge - 我希望选定的文本文件在合并时充当二进制文件
- django - 带有 Django REST 框架的 RBAC
- python-3.x - “此 python 中不包含 SSL 支持”Anaconda-python3-smtplib
- kohana-3 - Kohana 3 - 将模型保存到数据库中,关系为 belongs_to
- asp.net-mvc - ASP MVC Identity 2 让用户成为“用户”角色
- ruby-on-rails - Ruby - LoadError:无法加载此类文件 - ../credentials_go_in_var_lib/credentials