代码之家  ›  专栏  ›  技术社区  ›  gB08

对具有大量零特征的数据进行归一化/标准化是否好

  •  2
  • gB08  · 技术社区  · 7 年前

    P、 我必须使用隔离林算法进行异常检测。

    为什么这些结果不同?

    2 回复  |  直到 7 年前
        1
  •  3
  •   javidcf    7 年前

    标准化和标准化(取决于数据源,有时它们是等效使用的,所以我不确定在这种情况下,每一个都是什么意思,但这并不重要)是一个一般性建议,通常在数据或多或少均匀分布的问题中效果很好。然而,根据定义,异常检测并不是那种问题。如果您有一个数据集,其中大多数示例都属于类 A 只有少数人属于阶级 B ,稀疏特征(几乎总是零的特征)实际上可能(如果没有必要的话)对您的问题非常有区别。对它们进行归一化基本上会将它们变为零或几乎为零,这使得分类器(或主成分分析/奇异值分解)很难真正掌握它们的重要性。因此,如果跳过规范化,您可以获得更好的准确性,这并非不合理,而且您不应该仅仅因为“应该这样做”就觉得自己做得“不对”

    我没有异常检测的经验,但我有一些不平衡数据集的经验。您可以考虑某种形式的“加权归一化”,其中每个特征的平均值和方差的计算使用与类中示例数成反比的值进行加权(例如。 examples_A ^ alpha / (examples_A ^ alpha + examples_B ^ alpha) 具有 alpha 一些小负数)。如果稀疏特征具有非常不同的比例(例如,一个在90%的情况下为0,3在10%的情况下为3,另一个在90%的情况下为0,80在10%的情况下),则可以将其缩放到一个公共范围(例如[0,1])。

    为什么? 它不起作用可能会产生一些有用的见解)。

        2
  •  1
  •   Stergios    7 年前

    训练集中只有零(或任何其他常量值)的任何特征对于任何ML模型都没有用处。你应该丢弃它们。模型无法从中学习任何信息,因此测试数据是否具有一些非零值无关紧要。