马氏与归一化+欧几里得

信息处理 分类 正常化 knn
2021-12-26 05:39:16

我正在使用从信号中提取的一组特征来使用 KNN 算法对数据窗口进行分类。由于特征具有不同的取值范围,因此在 KNN 中使用欧式距离时,它们对距离计算的影响是不同的。

为了平衡这些特征对分类的影响:

  1. 我可以使用最小-最大归一化来归一化特征,然后使用欧几里得距离。
  2. 我可以使用马氏距离。

这两种方法相对于彼此有什么优势?

2个回答

两者都是合理的方法,可以预见,任何一个都可以在经验上胜过另一个。欧几里得距离假设数据是各向同性的高斯,即它将平等地对待每个特征。另一方面,马氏距离试图衡量变量之间的相关性,并放宽了欧几里得距离的假设,取而代之的是各向异性的高斯分布。

如果您先验地知道您的特征之间存在某种相关性,那么我建议您在欧几里得上使用马氏距离。另外,请注意,Z-score 特征缩放可以减轻在欧几里得上选择马氏距离的有用性(尽管最小-最大归一化不太正确)。Mahalanobis 距离的主要缺点是它需要对协方差矩阵进行求逆,这可能会根据问题在计算上有所限制。

要完成 bjou 的回答:

最小-最大归一化的一个潜在问题是它对异常值非常敏感。例如,如果您的数据集包含 100 个二维示例;并且数据集看起来像这样:

1, 147
8, -252
3, 125
2, -605
...
10000, -100 <- outlier
4, 200

min-max 归一化会将第一个属性的几乎所有值压缩为 0,除了最后一个为 1 的值 - 因此,第一个属性不太可能在分类中具有任何权重。

您可以改为使用最小-最大归一化的稳健变体,它使用第一和第三四分位数(或第一和第九十分位数)而不是最小值和最大值。

另一种常见的归一化技术包括去除平均值并除以标准偏差。您可以将其视为马氏距离的类似物,其中协方差矩阵被约束为对角线。它对异常值有些敏感,但不如 min/max 敏感。

最后值得一提的是:对数据进行高斯化(例如使用 box-cox 变换)通常很有帮助 - 每当您使用欧几里德范数对数据进行处理时,背后都会隐藏一个高斯假设!