首页 > 解决方案 > 缺失数值的插补,同时保留它的缺失

问题描述

在深入探讨问题本身之前,我将对数据集和问题进行简要说明

数据集

我有一个大约 20000 条记录的数据集,我打算用它来训练一个分类器,将给定的记录分类为“”或“”。数据集也非常不平衡,有 5:1 的比例有利于“积极”方面。

数据集中称为“价格”的特征之一,它包含一个货币值(因此 <0)并且有一些缺失值(大约 200)。当我分析数据集时,所有具有 NaN 的“ Price ”行都被归类为“ Negative ”。

问题

估算此列的最佳策略是什么?我想出了以下选项

  1. 我可以删除这些行,但由于它们都来自“”类,这似乎不可行
  2. 因为它是货币值,所以用一个极值(例如 -1000.00)来估算它。虽然它可能在这种情况下工作。如果该值也取负值,它将不起作用。我希望学习一种更通用的方法来解决这个问题。

  3. 使用诸如“平均”或“最近邻居”之类的策略将其归为正常,这仍然会影响性能,因为大多数类都是“正”的

  4. 我可以添加一个名为“wasCompleted”的新列,如果“价格”功能有值,则值为 1,如果没有,则值为 0。并且仍然选择(2)或(3)之类的选项。这仍然无法解决这些策略中的任何问题

考虑到这种情况,考虑估算这些值的最佳选择是什么?

标签: machine-learningimputation

解决方案


至少还有一个选项需要考虑:

  1. 保持原样,使用 ML 方法,它可以比使用任何类型的插补或创建附加特征更好地处理缺失值。这种方法例如是LightGMB。

推荐阅读