数据挖掘(异常检测)——统计学方法之HBOS

2021-05-15  本文已影响0人  EL33

DataWhale 组队学习 2021.05 组队学习系列笔记二

先上整体大纲

异常检测--统计学方法大纲

HBOS流程:

  1. 为每个数据维度做出数据直方图。对分类数据统计每个值的频数并计算相对频率。
  2. 对每个维度都计算一个独立直方图,其中每个箱子的高度表示密度的估计。然后对直方图进行归一化处理,使得每个箱子的最大高度为1,确保每个特征的异常值得分的权重相等。

基本假设是数据集的各维度相互独立,对每个维度进行区间划分,计算区间密度,密度越高,评分越低。

常用两种作图方式:1.固定的柱宽度。2.柱个数大致相同,但导致不同的柱宽度。 当有大量离群值的时候,第二种方法更强固。

代码示例:

from pyod.models import hbos
from pyod.utils.example import visualize 

clf = hbos.HBOS()    # 初始化HBOS模型,生成一个HBOS检测器
clf.fit(X_train)    # 用fit()方法拟合数据
y_train_pred = clf.labels_    # 针对训练样本预测其异常情况
y_train_socres = clf.decision_scores_    # 异常分数
y_test_pred = clf.predict(X_test)  # 返回未知数据上的分类标签 (0: 正常值, 1: 异常值)
y_test_scores = clf.decision_function(X_test)  #  返回未知数据上的异常值 (分值越大越异常)
上一篇下一篇

猜你喜欢

热点阅读