今天会有点水,见谅
统计学方法
统计学方法就是假定数据是由一个统计模型产生,而不遵守该模型的数据就是异常点,这个缺点就很明显了,因为事先是不可能知道这个统计模型是什么,就只能一个一个试了。
统计学方法又分为两个方法:参数方法和非参数方法
参数方法
参数方法,就是假定数据由某个分布产生(例如高斯、卡方,事实上,高斯分布更常用),然后根据样本来得出所需参数(例如高斯分布就需要mu、sigma)。有没有注意到一点,所需参数是由样本计算得出,这就出现了一个问题啦,异常点少的话对结果没多大影响,但如果异常点有相当一部分的话,就会严重影响参数,以至于影响最终结果。
非参数方法
而非参数方法就是利用正常数据的模型来输入数据学习,这个对监督和半监督友好,对无监督极不友好
HBOS全名为:Histogram-based Outlier Score
步骤
-
画直方图,画直方图也有两种方法:
(1)静态宽度直方图:像普通的直方图那样,先划分区间,再统计;
(2)动态宽度直方图:先排序,自设定一个值k,固定数量k个连续值装箱,之后统计。 -
依公式计算,结果越大异常的可能性就越大对每一个维度进行如上计算: H B O S ( p ) = − log ( P ( p ) ) = ∑ i = 1 d 1 log ( P i ( p ) ) H B O S(p)=-\log (P(p))=\sum_{i=1}^{d} \frac{1}{\log \left(P_{i}(p)\right)} HBOS(p)=−log(P(p))=i=1∑dlog(Pi(p))1
其中,d是维度(特征数量),P是依据直方图来计算。
HBOS有一个致命的缺点,就是iid,这个在现实中很难成立,就像NaiveByes。