如果 MAD 等于 0,如何标准化?

机器算法验证 正常化 中位数 疯狂的
2022-04-10 02:51:19

标准化我们的特征向量的一种已知方法是:

ximedian(X(j))MAD(j),

其中是特征的中值绝对偏差。MAD(j)j

但是,如果超过的特征向量数据具有相同的值,我们有:50%MAD(j)=0

有没有合适的方法来处理这个问题?或者,我应该使用另一种方法吗?

3个回答

正如这个问题所表明的,标准化一点也不简单。考虑少量的大异常值。即使它们对 MAD 没有贡献,它们由 MAD/中位数归一化的最终值的绝对值也会非常高,可能高于通过 SD/均值归一化它们的最终值。如果您试图将所有特征都放在一个共同的尺度上,例如岭回归、LASSO 或惩罚最大似然中的公平相对惩罚,那么即使选择归一化也会影响结果。

在您的情况下,具有超过 50% 的相同值,对于稳健的规模测量的常用候选者都不会起作用,因为它们在这种情况下都会崩溃。和 MAD 一样,SnQn您引用的论文中制定的措施分解为 50%。我想您可以尝试以某种方式使用与中位数不同的顺序统计数据,但随后您将回到由异常值主导的规模度量。

想到的一件事(与通常的建议相反)是将这些特征分箱以将它们视为序数变量。在这种情况下,分箱可能不会那么糟糕,如果主要兴趣是特征值是否与单个高度流行的值不同,如果是,在哪个方向上。然而,这将这个问题变成了另一个难题,即如何最好地标准化一个有序变量。这个页面这个页面这个页面提供了讨论的条目。

似乎对基础主题的了解以及您通过规范化尝试完成的工作,而不是简单的算法,可能会为您的问题提供最佳答案。

如果至少 50% 的观察结果是相同的,那么是的,这种归一化操作在数学上和直观上都没有意义。

我可能会考虑按照之前的建议对观察结果进行分类。例如,所有具有相同值的观察值将被标记为第 1 组,而其他所有观察值将被标记为第 2 组。

话虽如此,如果您真的想保持特征的数值性质,那么您可以先尝试各种转换(例如对数、平方根等)以最小化异常值的影响,然后使用传统方法进行归一化。

另一种方法可能是在 50% 的常数值上引起一些偏差。例如,如果 50% 的值为 1,则生成范围从 0.9999 到 1.0001 的随机值作为常数值