如何确定替换数据集中空记录的最佳方法?

数据挖掘 机器学习 数据集
2022-02-17 11:48:20

我正在做一个与根据他/她过去的记录预测下一个葡萄糖值相关的项目。但在一些患者中,一些录音丢失了。我的数据集中缺少血糖值有两种情况。因此,在我的示例中,我将它们标记为场景 1 和场景 2。

情景 - 1

  1. 患者在第30天基本上在早餐、午餐和晚餐之前记录了每天三次的葡萄糖值。但在第31天他只记录了早餐和晚餐。第 31 天没有记录午餐。那么我们如何将午餐中的 0 值替换为另一个值?

情景 - 2

  1. 另一位患者从第1天到第40天连续记录血糖值,然后又连续2天没有记录血糖值(早餐前、午餐前和晚餐前第41天和第42天没有记录) )。他再次开始记录第 43 天的值。那么解决这种情况的最佳方法是什么?

我浏览了许多文章,大部分都解释了如何替换空记录的众数、中值或平均值。但我认为模式,中位数不适合这种数据集。我非常怀疑我是否也可以使用平均值来替换Scenario-1中的空记录值。我们实际上可以使用 mean 来替换Scenario - 1中的空记录,还是有其他好的方法?

据我所知,我认为我不能使用上述三种方法来替换Scenario - 2中的值,因为缺少大约 6 条记录。如果我是正确的,那么Scenario-2的最佳方法是什么。

谢谢!!!

1个回答

当缺失数据的数量不够少时,用均值、中位数和众数替换缺失值是可行的。在您的情况下,只有少数数据丢失。我们可以使用其余数据来得出比平均值、中位数和众数更好的估计值。让我们看看可能的方法:

场景 1:使用第 31 天的早餐和午餐读数,尝试根据早餐和午餐值查找当天最近的邻居。您可以使用这个最近邻日的晚餐值作为第 31 天晚餐的估计值。

对上述方法的改进:

1)您也可以使用 kNN 模型,而不仅仅是选择单个最近的邻居。

2)如果您有日期或可以确定一周中的哪一天(如周日、周一、周二等),那么您只能在一周中的同一天中选择最近的邻居。(尽管如此,您可以通过简单地减去或添加 7 来计算您想要查找其值的日期。)假设 31 日是星期天,那么该例程很可能与数据上的其他星期天相似,而不是像星期一这样的工作日。

场景 2:您可以使用一周中同一天的值来估计缺失值。最简单的方法是取中位数。一个更强大的估计是通过使用一个小型神经网络来估计给定过去几天的值的第二天的值(这里,考虑作为输入的天数将是一个超参数)。