我在阅读关于分类算法KNN的内容时,遇到了一个术语“距离敏感数据”。我无法找到距离敏感数据的确切定义及其分类方法,也不知道如何判断我们的数据是否是距离敏感的?
回答:
假设xi 和 xj 是案例 i 和 j 中观察到的特征向量。正如你可能知道的,kNN 是基于距离 ||xi–xj|| 的,例如欧几里得距离。
现在,如果xi 和 xj 只包含一个特征,即个人的身高(以米为单位),我们没有问题,因为没有其他“竞争”特征。假设接下来我们添加了年收入(以千为单位)。因此,我们看的是像 (1.7, 50000) 和 (1.8, 100000) 这样的向量之间的距离。
然后,在使用欧几里得距离的情况下,很明显收入特征会主导身高特征,几乎就像我们只使用收入特征一样。也就是说,
||xi–xj||2 ≈ |50000-100000|。
然而,如果这两个特征实际上具有相似的重要性,那么我们的处理方式就很差。如果收入实际上是无关紧要的,而我们应该只使用身高,情况会更糟。有趣的是,在弱条件下,即使在这种糟糕的情况下,我们的分类器仍然具有像普遍一致性这样的良好属性。问题在于,在有限样本中,我们分类器的表现非常差,以至于收敛速度非常慢。
因此,为了应对这个问题,人们可能想要考虑不同的距离,以便处理尺度问题。通常人们会对每个特征进行标准化(将均值设为零,方差设为一),但这也不是一个完整的解决方案。有各种建议可以采取的措施(例如,参见这里)。
另一方面,基于决策树的算法不会受到这种影响。在那些情况下,我们只是寻找一个点来分割变量。例如,如果收入的值在 [0,100000] 之间,而分割点在 40000,那么 Salary/10 将在 4000 处分割,因此结果不会改变。