什么是距离敏感数据,它与其他数据有何不同?任何示例都会有所帮助

Posted

技术标签:

【中文标题】什么是距离敏感数据,它与其他数据有何不同?任何示例都会有所帮助【英文标题】:What is a Distance Sensitive Data how it Differs from other Data? Any Examples will be helpful 【发布时间】:2019-04-10 17:49:12 【问题描述】:

我正在阅读有关分类算法 KNN 的内容,并遇到了一个术语距离敏感数据。我无法找到距离敏感数据到底是什么,它的分类是什么,如何判断我们的数据是否对距离敏感?

【问题讨论】:

【参考方案1】:

假设 xixj 是在情况 i 和 j 中观察到的特征的向量。那么,你可能知道,kNN 是基于距离 ||xi-xj||,比如欧几里得。

现在如果 xixj 只包含一个特征,即个人身高(以米为单位),我们很好,因为没有其他“竞争”功能。假设接下来我们加上以千为单位的年薪。因此,我们查看向量之间的距离,例如 (1.7, 50000) 和 (1.8, 100000)。

然后,在欧几里得距离的情况下,显然薪水特征支配了身高,这几乎就像我们单独使用薪水特征一样。也就是说,

||xi-xj||2 ≈ | 50000-100000|.

但是,如果这两个功能实际上具有相似的重要性,那么我们做得很差。如果薪水实际上无关紧要,我们应该单独使用身高,那就更糟了。有趣的是,在弱条件下,即使在如此糟糕的情况下,我们的分类器仍然具有良好的属性,例如通用一致性。问题是在有限样本中,我们的分类器性能很差,所以收敛很慢。

因此,为了解决这个问题,可能需要考虑不同的距离,以便对比例做一些事情。通常人们会标准化(将均值设为 0,方差设为 1)每个特征,但这也不是一个完整的解决方案。有各种建议可以做什么(例如,请参阅here)。

另一方面,基于决策树的算法不会受此影响。在这些情况下,我们只是寻找分割变量的点。例如,如果薪水采用 [0,100000] 中的值并且拆分为 40000,则 Salary/10 将在 4000 处拆分,这样结果就不会改变。

【讨论】:

谢谢你这么好的解释。我有一些疑问: 1.所以通过使用 StandardScaler 这个问题可以解决。对吗? @AmandeepSingh,它可能会有所帮助,但不一定能完全解决问题。假设我们有两个标准化特征 x1 和 x2。进一步假设我们正在处理一个回归问题,并且真实模型是线性的,并且由 y=50x1+x2+u 给出。因此,即使 x1 和 x2 的比例相同,x1 也是“更重要”的 50 倍。但是,通过查看 (x1,x2) 之间的欧几里得距离,我们将平等对待它们,性能会受到影响。 那么以上面的真实模型为例,正确的方法是什么? 使用加权距离代替标准欧几里得距离,但问题是人们永远不知道正确的权重。正如我在回答中所说,“有各种各样的建议可以做什么”。有关几个示例,请参阅 en.wikipedia.org/wiki/…。还有更多。

以上是关于什么是距离敏感数据,它与其他数据有何不同?任何示例都会有所帮助的主要内容,如果未能解决你的问题,请参考以下文章

你什么时候使用桥模式?它与适配器模式有何不同?

什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同

什么是伪多项式时间?它与多项式时间有何不同?

return 语句的目的是啥?它与印刷有何不同?

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

什么是操作系统内核?它与操作系统有何不同? [关闭]