我正在使用从信号中提取的一组特征来使用 KNN 算法对数据窗口进行分类。由于特征具有不同的取值范围,因此在 KNN 中使用欧式距离时,它们对距离计算的影响是不同的。
为了平衡这些特征对分类的影响:
- 我可以使用最小-最大归一化来归一化特征,然后使用欧几里得距离。
- 我可以使用马氏距离。
这两种方法相对于彼此有什么优势?
我正在使用从信号中提取的一组特征来使用 KNN 算法对数据窗口进行分类。由于特征具有不同的取值范围,因此在 KNN 中使用欧式距离时,它们对距离计算的影响是不同的。
为了平衡这些特征对分类的影响:
这两种方法相对于彼此有什么优势?
要完成 bjou 的回答:
最小-最大归一化的一个潜在问题是它对异常值非常敏感。例如,如果您的数据集包含 100 个二维示例;并且数据集看起来像这样:
1, 147
8, -252
3, 125
2, -605
...
10000, -100 <- outlier
4, 200
min-max 归一化会将第一个属性的几乎所有值压缩为 0,除了最后一个为 1 的值 - 因此,第一个属性不太可能在分类中具有任何权重。
您可以改为使用最小-最大归一化的稳健变体,它使用第一和第三四分位数(或第一和第九十分位数)而不是最小值和最大值。
另一种常见的归一化技术包括去除平均值并除以标准偏差。您可以将其视为马氏距离的类似物,其中协方差矩阵被约束为对角线。它对异常值有些敏感,但不如 min/max 敏感。
最后值得一提的是:对数据进行高斯化(例如使用 box-cox 变换)通常很有帮助 - 每当您使用欧几里德范数对数据进行处理时,背后都会隐藏一个高斯假设!