我有一个包含 x 属性和 y 记录的数据集。给定一个输入记录,它有多达 x-1 个缺失值,我将如何合理地近似剩余的缺失值之一?
所以在下面的例子中,输入记录有两个值(属性 2 和 6,其余的缺失),我想近似属性 8 的值。
我知道缺失值是通过“插补”处理的,但我通常会找到有关预处理数据集的示例。我正在寻找一种解决方案,它使用回归来确定缺失值,并且理想情况下使用构建一次的模型(如果可能,不必每次都生成一个)。
我有一个包含 x 属性和 y 记录的数据集。给定一个输入记录,它有多达 x-1 个缺失值,我将如何合理地近似剩余的缺失值之一?
所以在下面的例子中,输入记录有两个值(属性 2 和 6,其余的缺失),我想近似属性 8 的值。
我知道缺失值是通过“插补”处理的,但我通常会找到有关预处理数据集的示例。我正在寻找一种解决方案,它使用回归来确定缺失值,并且理想情况下使用构建一次的模型(如果可能,不必每次都生成一个)。
存在或不存在属性的可能性的数量使得能够维护一组模型(如涵盖所有情况的线性回归)似乎是不切实际的。对我来说似乎实用的一种模型是您没有完全制作任何模型的模型——最近邻回归。我的建议是使用您可用的任何属性并计算到您的训练点的距离。您可以使用最近邻居的值或几个最近邻居的(可能加权)平均值。在您的示例中,我们将仅使用属性 2 和 6 来计算距离。最近的点是最后一个点 (3.966469, 8.911591)。该点的属性 8 值为 6.014256,因此这是您对新点的属性 8 的估计。
或者,您可以使用三个最近的邻居。这些是第 17、8 和 12 点,因此您可以使用这些点的属性 8 值的平均值,或加权平均值。人们有时使用权重 1/dist。当然,三个邻居只是一个例子。你可以选择另一个k。
这可能比对属性 8 的所有缺失值使用全局平均值 (8.4) 更好。