我使用多元高斯分布来分析异常情况。训练集的外观如下
19-04-16 05:30:31 1 0 0 377816 305172 5567044 0 0 0 14 62 75 0 0 100 0 0<Date> <time> <--------------------------- ------- Features --------------------------->
假设上述特征中的一个不变,始终为零。
计算均值 = mu
mu = mean(X)'
计算sigma2如下
sigma2 = ((1/m) * (sum((X - mu') .^ 2)))'
使用标准高斯公式计算每个数据集中各个特征的概率
对于某个特定特征,如果所有值都为零,那么均值(mu)也为零。随后sigma2也会为零。因此,当我通过高斯分布计算概率时,会遇到“除以零”的问题。
然而,在测试集中,这个特征值可能会波动,我希望将其视为异常情况。应该如何处理?我不想忽略这样的特征。
回答:
所以,每当你有一个恒定不变的变量时,这个问题就会发生。但用正态分布来近似它完全没有意义。关于这种变量的所有信息都包含在一个值中——这就是为什么会发生除以0现象的直觉原因。
如果你知道在训练集中没有观察到的变量有这些波动,你可以简单地设定这种变量的方差不小于某个值。你可以使用函数max(variance(X), eps)
来代替经典的方差定义。这样,你就可以确保不会发生除以0的情况。