【机器学习】异常检测算法之(HBOS)-Histogram-based Outlier Score
机器学习初学者
共 4125字,需浏览 9分钟
· 2022-04-11
HBOS全名为:Histogram-based Outlier Score。它是一种单变量方法的组合,不能对特征之间的依赖关系进行建模,但是计算速度较快,对大数据集友好,其基本假设是数据集的每个维度相互独立,然后对每个维度进行区间(bin)划分,区间的密度越高,异常评分越低。理解了这句话,基本就理解了这个算法。下面我专门画了两个图来解释这句话。
1、静态宽度直方图
2、动态宽度直方图
二、算法推导过程
PyOD是一个可扩展的Python工具包,用于检测多变量数据中的异常值。它可以在一个详细记录API下访问大约20个离群值检测算法。
三、应用案例详解
1、基本用法
from pyod.models.hbos
HBOSHBOS(
n_bins=10,
alpha=0.1,
tol=0.5,
contamination=0.1
)
2、模型参数
#导入包
from pyod.utils.data import generate_data,evaluate_print
# 样本的生成
X_train, y_train, X_test, y_test = generate_data(n_train=200, n_test=100, contamination=0.1)
X_train.shape
(200, 2)
X_test.shape
(100, 2)
from pyod.models import hbos
from pyod.utils.example import visualize
# 模型训练
clf = hbos.HBOS()
clf.fit(X_train)
y_train_pred = clf.labels_
y_train_socres = clf.decision_scores_
#返回未知数据上的分类标签 (0: 正常值, 1: 异常值)
y_test_pred = clf.predict(X_test)
# 返回未知数据上的异常值 (分值越大越异常)
y_test_scores = clf.decision_function(X_test)
print(y_test_pred)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
print(y_test_scores)
array([1.94607743, 1.94607743, 1.94607743, 3.18758465, 2.99449223,
1.94607743, 3.18758465, 2.99449223, 1.94607743, 3.18758465,
1.94607743, 1.94607743, 3.18758465, 1.94607743, 1.94607743,
1.94607743, 3.18758465, 1.94607743, 2.99449223, 1.94607743,
1.94607743, 1.94607743, 1.94607743, 3.18758465, 3.18758465,
2.99449223, 1.94607743, 1.94607743, 1.94607743, 3.18758465,
1.94607743, 2.99449223, 1.94607743, 1.94607743, 1.94607743,
1.94607743, 2.99449223, 1.94607743, 1.94607743, 1.94607743,
1.94607743, 1.94607743, 3.18758465, 1.94607743, 1.94607743,
2.99449223, 2.99449223, 3.18758465, 2.99449223, 1.94607743,
1.94607743, 1.94607743, 1.94607743, 1.94607743, 3.18758465,
1.94607743, 3.18758465, 3.18758465, 1.94607743, 1.94607743,
1.94607743, 2.99449223, 3.18758465, 2.99449223, 1.94607743,
1.94607743, 3.18758465, 1.94607743, 1.94607743, 1.94607743,
1.94607743, 1.94607743, 1.94607743, 2.99449223, 1.94607743,
2.99449223, 1.94607743, 3.18758465, 3.18758465, 1.94607743,
2.99449223, 2.99449223, 1.94607743, 1.94607743, 1.94607743,
1.94607743, 2.99449223, 1.94607743, 3.18758465, 1.94607743,
6.36222028, 6.47923046, 6.5608128 , 6.52101746, 6.36222028,
6.52015473, 6.44010653, 5.30002108, 6.47923046, 6.51944504])
# 模型评估
clf_name = 'HBOS'
evaluate_print(clf_name, y_test, y_test_scores)
HBOS ROC:1.0, precision @ rank n:1.0
# 模型可视化
visualize(clf_name,
X_train, y_train,
X_test, y_test,
y_train_pred,y_test_pred,
show_figure=True,
save_figure=False
)
四、总 结
往期精彩回顾
适合初学者入门人工智能的路线及资料下载 (图文+视频)机器学习入门系列下载 中国大学慕课《机器学习》(黄海广主讲) 机器学习及深度学习笔记等资料打印 《统计学习方法》的代码复现专辑 AI基础下载 机器学习交流qq群955171419,加入微信群请扫码:
评论
学习开放日:开放复杂科学、AI+X 海量学习资源!
Datawhale干货 学习开放日:4月27-28日1. 什么是学习开放日?以AI为代表的技术突飞猛进,人类知识森林快速扩张,仅凭一人之力不仅难以覆盖,更是难以串联知识线索。唯有像蚂蚁探索最优路径一样,我们才能在信息爆炸的知识森林中探索出更好的方向!因此,今年集智斑图联合国内最
Datawhale
1
面试官:限流的常见算法有哪些?
限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。1.计数器算法计数器算法是在一定的时间间隔里,记录请求次数,当请求次数超过该时间限制时,就把计数器清零,然后重新计算。当请求次数超过间隔内的最大次数时,拒绝访问。计数器算法的实现比较简单,但存在“突刺现象”。突刺现象是指
Stephen
0
985 本硕,秋招上岸阿里算法岗!
↓推荐关注↓节前,我们星球举办了技术&面试交流会,邀请了一些互联网大厂好友以及今年参加社招和校招面试的同学。会上探讨了一系列热门话题,包括大模型发展趋势、算法落地实践、面经总结,以及如何做好面试准备和应对常见考点。基于经验交流与实战经验,我们总结如下:《机器学习算法面试宝典》1.0 发布!今
Python学习与数据挖掘
0
AI智能视觉检测技术在工业级测量领域的创新应用--AMB Tube-Q导管数字化测量系统
技术背景在深度学习算法出来之前,对于视觉算法来说,大致可以分为以下5个步骤:特征感知,图像预处理,特征提取,特征筛选,推理预测与识别。早期的机器学习中,占优势的统计机器学习群体中,对特征是不大关心的。深度学习是机器学习技术的一个方面,由人工神经网络提供支持。深度学习技术的工作原理是教机器通过实例学习
机器视觉
0
文末送书 | 大模型时代下如何学习云原生
《containerd 原理剖析与实战》新书内购中,点击阅读原文,限时 69.9 元购买。文末免费赠书大模型与云原生近年来,大语言模型的热度可谓是愈发高涨,尤其是今年年初 Sora 的出现,更是让全球再次看到了AIGC 的巨大威力。Sora 生成实例视频---几头巨大的长毛猛犸踏着积雪的草地而来在当
云原生实验室
10
轻松学习C#:百度行驶证C++离线SDK接入详解
效果 先看最终效果SDK 拿到完整包如图,687M解压后看看内容发现有个readme.txt,那就先看看内容1:用vs2015打开sln工程,最好用vs2015 comunity版本,可微软官网下载。2:sdk的doc目录有pdf接口文档。3:工程总入口main.cpp、请参考示例实现您的功能。4:
DotNet NB
9
日语五十音图学习难吗?
学习日语的初学者们都知道,我们学习日语最初就必须要接触日语五十音图,虽然相对其他语言来说,五十音图挺不是很难学,但是很多初学者可能会记不住,别担心,老师为大家带来了学习经验分享,一起来看看吧!五十音图就是日语最基础的基础,也就是地基。由于日语的元音比较单调,只有a/i/u/e/o这五种,再和各种辅音
python教程
0
自动控制方面的大牛们/2D圆盘跟随式AI涂胶视觉检测系统/点光谱弧面玻璃轮廓度检测
微信改了推送规则,如果您还想收到我们的推送!点击上方“机器视觉”,右上角...选择“置顶/星标”公众号行业资讯机器视觉十大应用场景介绍 控制理论研究领域目前遇到的瓶颈是什么? 控制理论到底有什么用?自动控制方面的大牛们都有哪些主要贡献?OpenCV 5 进度更新 2024 年 4
机器视觉
0