我已经基于完整和干净的数据集成功构建了一个逻辑回归预测模型,即没有丢失的值,并且数据是一致的。现在,为了部署模型并测试以供在线使用,输入中存在缺少值,即,并非所有输入都可以预测目标值。

是否有一种标准方法来处理此问题?

有帮助吗?

解决方案

我可以想到解决问题的三种方法:

  1. 将“缺失价值”视为另一个功能: :想象一下您的功能是“毕业日期”。一个可能缺少这个值的原因(可能?)可能是该人没有毕业。因此,您可以构建一个模型,该模型是二进制功能“可用的毕业日期”,实际毕业日期是另一个功能。
  2. 预测缺失值: :如果由于缺乏知识而缺少数据(与第一点相比),那么您可能会考虑尝试预测缺失的值。您还可以添加一个功能,该功能编码预测值正确的确定性。
  3. 跳过功能: :如果它经常丢失并且没有为您的预测增加太多价值,则可能只想将其删除。

其他提示

在统计数据中,应对缺失值通常是通过插补来完成的: https://en.wikipedia.org/wiki/imputation_(statistics)

整本书已经写了。建议您开始阅读。

一种方法(多个插补)是通过创建许多新的完整数据项来替换缺失值的一些方法,从而从分布中采样的一些值来创建许多新的完整数据项。然后,您可以从这些新数据项中进行预测,这为您提供了一组预测和差异,您可以从中计算出汇总的预测和差异。由于采样引入的差异,因此该方差将大于完整项目的差异。增加将取决于丢失变量对模型的影响力以及您对丢失项目的分布的影响。例如,如果您缺少年龄,并且您的数据应来自16至60之间的人口,则您会从人口分布中采样年龄,进行预测,并根据多重插入方法进行汇总。

当然,您必须知道您的缺失数据是随机缺失的,还是偏见的丢失(也许更多40岁以上的女性不给自己的年龄)。许多有趣的并发症只有在您仔细考虑数据时才会发现。

无论如何,正如我所说的,整本书。您也可能应该尝试统计数据堆栈交换网站。它并不是很多数据科学。

Missing values need to be treated, you can remove missing if are very  
small < 10% or you have large dataset. Some  statistical software like SAS will 
exclude missing values if is not imputed/treated. 

您也无法预测任何东西 NA: :通常缺少或编码的数据可能是有意义的或无意识的,因此您需要找出缺少数据需要做的事情。

总而言之:应该修复丢失的数据,因为如果被编码的情况,则比您的预测错误或统计软件会自动从数据集/模型中删除。假设您已经构建了这个逻辑模型,而不是您知道如何处理模型构建的数据,并且下一步是否弄清楚是否准备了数据以包括模型中的丢失数据或从数据集/输入管道中删除。

使其与真实数据尽可能接近,回到重建逻辑回归模型,并模拟您在真实数据中发现的丢失值。毕竟,该模型应该代表现实情况。这种方法比归档方法具有一些优势。最重要的是,您可以准确衡量您的模型可以掌握哪些数据和多少数据。

许可以下: CC-BY-SA归因
scroll top