繁体   English   中英

部分未知矢量的最近邻

[英]Nearest Neighbor for partially unknown vector

假设我们有人名单,并希望找到像X一样的人。

特征向量有3个项目[weight, height, age] ,我们的列表中有3个人。 请注意, 我们不知道人的身高C.

A: [70kg, 170cm, 60y]
B: [60kg, 169cm, 50y]
C: [60kg, ?,     50y]

找到最接近A人的最佳方式是什么?

我猜

让我们计算高度的平均值,并使用它代替未知值。

因此,假设我们计算出170cm是身高的平均值,并将人C重新定义为[60kg, ~170cm, 50y]

现在我们可以找到最接近A的人,它将是A, C, B

问题

现在的问题是,我们把C与猜测~170cm前比B已知169cm

有点不对劲。 我们人类比机器聪明,并且知道C几乎没有机会达到170cm 所以,最好把B比C高出169cm

但是我们如何计算这个惩罚呢? (最好是简单的经验算法)我们应该以某种方式惩罚具有未知值的向量? 多少(也许计算每组两个人身高之间的平均差异)?

当特征向量的维数为N并且它具有K已知项并且U未知( K + U = N )时,这种惩罚如何在一般情况下看起来如何?

在这个特定的例子中,使用线性回归来填充缺失值而不是取平均值会更好吗? 通过这种方式,您可能对猜测值更有信心并且可能不需要惩罚。

但是,如果你想要惩罚,我有一个想法,即采取非缺失功能的比例。 在该示例中,总共有3个功能。 C具有2个特征中的值。 因此C的非缺失特征的比率是2/3。 通过将相似性得分与非缺失要素的比率相乘来调整相似度得分。 例如,如果A和C之间的相似度是0.9,则调整后的相似度是0.9 * 2/3 = 0.6。 而A和B之间的相似性不会受到影响,因为B具有所有特征的值,并且比率将为1。

您还可以在计算比率时对功能进行加权。 例如,(重量,高度,年龄)分别得到重量(0.3,0.4,0.3)。 然后缺少高度特征将具有(0.3 + 0.3)= 0.6的加权比率。 你可以看到C受到更多惩罚,因为我们认为身高比体重和年龄更重要。

我建议,对于我们具有已知属性的数据点,使用学习模型,线性回归或多层感知器来学习未知属性,然后使用此模型填充未知属性。 平均情况是线性模型的一个特例

您对Data Imputation的问题感兴趣。

有几种方法可以解决这个问题,我只想列举一些:

  • 均值/模式/中位数估算 :估算是一种用估计值填充缺失值的方法。 目标是采用可以在数据集的有效值中识别的已知关系,以帮助估计缺失值。 均值/模式/中值插补是最常用的方法之一。 它包括通过该变量的所有已知值的均值或中值(定量属性)或模式(定性属性)替换给定属性的缺失数据。 这可以进一步分类为广义和类似的案例插补。

  • 预测模型 :预测模型是处理缺失数据的复杂方法之一。 在这里,我们创建一个预测模型来估计将替代缺失数据的值。 在这种情况下,我们将数据集分为两组:一组没有变量的缺失值,另一组缺少值。 第一个数据集成为模型的训练数据集,而第二个具有缺失值的数据集是测试数据集,具有缺失值的变量被视为目标变量。 接下来,我们创建一个模型,根据训练数据集的其他属性预测目标变量,并填充测试数据集的缺失值。

  • KNN(k-最近邻居)插补 :在这种插补方法中,使用与其值缺失的属性最相似的给定数量的属性来估算属性的缺失值。 使用距离函数确定两个属性的相似性。

  • 线性回归 :一种线性方法,用于建模标量因变量y与表示为X的一个或多个解释变量(或自变量)之间的关系。在预测中,线性回归可用于将预测模型拟合到y的观测数据集和X值。 在开发这样的模型之后,如果在没有其伴随的y值的情况下给出X的附加值,则可以使用拟合模型来预测y的值。 如果需要,请检查此示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM