-
22-10-2019 - |
题
-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]
一种简单的方法(特别在医疗数据集中流行)正在寻找有关大多数相似实例的值;在上述情况下,缺少价值
x2
然后是:2(因为x1
是最相似的)在这种情况下,通过k的大多数相似实例(当然,只有在缺失值或至少有序的情况下),将一种更复杂的方法平均(当然仅适用),您应该计算:
x2(2) = (2*(1-(0/3)) + 3*(1-(0.5/3)) / (2-(0/3)-(0.5/3))
(x4
也被视为类似情况另一种方法是在K大多数类似实例中进行投票(适用于分类和序数值)。
案例1和3是您已经实施的(case1 = 1最近的邻居 / case2 = k-nearest邻居)
还有其他用于处理丢失值的方法,但这取决于您将使用数据集的方法。例如,在非常大的数据集中,有时简单地忽略每个含有至少一个缺失值的实例,或者仅忽略其他过程中缺少值(不是整个实例)是有效的(例如 VFI 算法)