什么是距离敏感数据?它与其他数据有何不同?提供一些例子会很有帮助

我在阅读关于分类算法KNN的内容时,遇到了一个术语“距离敏感数据”。我无法找到距离敏感数据的确切定义及其分类方法,也不知道如何判断我们的数据是否是距离敏感的?


回答:

假设xixj 是案例 i 和 j 中观察到的特征向量。正如你可能知道的,kNN 是基于距离 ||xixj|| 的,例如欧几里得距离。

现在,如果xixj 只包含一个特征,即个人的身高(以米为单位),我们没有问题,因为没有其他“竞争”特征。假设接下来我们添加了年收入(以千为单位)。因此,我们看的是像 (1.7, 50000) 和 (1.8, 100000) 这样的向量之间的距离。

然后,在使用欧几里得距离的情况下,很明显收入特征会主导身高特征,几乎就像我们只使用收入特征一样。也就是说,

||xixj||2 ≈ |50000-100000|。

然而,如果这两个特征实际上具有相似的重要性,那么我们的处理方式就很差。如果收入实际上是无关紧要的,而我们应该只使用身高,情况会更糟。有趣的是,在弱条件下,即使在这种糟糕的情况下,我们的分类器仍然具有像普遍一致性这样的良好属性。问题在于,在有限样本中,我们分类器的表现非常差,以至于收敛速度非常慢。

因此,为了应对这个问题,人们可能想要考虑不同的距离,以便处理尺度问题。通常人们会对每个特征进行标准化(将均值设为零,方差设为一),但这也不是一个完整的解决方案。有各种建议可以采取的措施(例如,参见这里)。

另一方面,基于决策树的算法不会受到这种影响。在那些情况下,我们只是寻找一个点来分割变量。例如,如果收入的值在 [0,100000] 之间,而分割点在 40000,那么 Salary/10 将在 4000 处分割,因此结果不会改变。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注