-1 down投票最爱我有一个数据集,其中包括大多数变量的丢失数据。假设数据集如下:

Obs.  var1  var2  var3  var4  var5  var6
1     x11   x12   x13   x14    Nan  Nan
2     x21   x22   x23   Nan    x25  x26
3     x31   x32   x33   x34    x35  x36
...
n     xn1   xn2   xn3   xn4    Nan  xn6

我已经将数据集拆分为D1,其中我们拥有所有变量和D2的完整数据,其中所有记录至少具有一个丢失的变量。

我使用KNN制作了不同的模型:为了预测第一个观察值的VAR5和VAR6的值,我使用了D1(数据集而没有缺少值),并在VAR1,VAR2,VAR3,VAR3和VAR4上进行了建模。

为了预测上一次观察值的VAR5值,我使用了D1并在VAR1,VAR2,VAR3,VAR4和VAR5上建模。

我的方法有意义吗?欢迎任何建议。谢谢你。

有帮助吗?

解决方案

有多种处理缺失值的方法。假设我们在数据集中有4个实例:

x1 = [1 2 3]
x2 = [1 ? 3]
x3 = [2 4 2]
x4 = [1 3 3.5]
  1. 一种简单的方法(特别在医疗数据集中流行)正在寻找有关大多数相似实例的值;在上述情况下,缺少价值 x2 然后是:2(因为 x1 是最相似的)

  2. 在这种情况下,通过k的大多数相似实例(当然,只有在缺失值或至少有序的情况下),将一种更复杂的方法平均(当然仅适用),您应该计算: x2(2) = (2*(1-(0/3)) + 3*(1-(0.5/3)) / (2-(0/3)-(0.5/3)) (x4 也被视为类似情况

  3. 另一种方法是在K大多数类似实例中进行投票(适用于分类和序数值)。

案例1和3是您已经实施的(case1 = 1最近的邻居 / case2 = k-nearest邻居)

还有其他用于处理丢失值的方法,但这取决于您将使用数据集的方法。例如,在非常大的数据集中,有时简单地忽略每个含有至少一个缺失值的实例,或者仅忽略其他过程中缺少值(不是整个实例)是有效的(例如 VFI 算法)

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