相关文章推荐
慷慨大方的皮带  ·  在Razor Page ...·  3 周前    · 
正直的酸菜鱼  ·  Mysql ...·  11 月前    · 
留胡子的打火机  ·  mybatis ...·  1 年前    · 
考研的绿豆  ·  from_json 函数 - Azure ...·  1 年前    · 
神勇威武的夕阳  ·  Python ...·  1 年前    · 
异常检测算法应用与实践_CMU赵越

异常检测算法应用与实践_CMU赵越

欢迎关注 @Python与数据挖掘 ,专注 Python、数据分析、数据挖掘、好玩工具!

作者:赵越,卡内基梅隆大学

内容概括

1.什么是异常检测?

2.异常检测有什么具体应用?

3.异常检测的工具概览?如何用10行Python代码进行异常检测?

4.异常检测算法概览与主流模型介绍

5.面对各种各样的模型,如何选择和调参?

6.未来的异常检测研究方向

7.异常检测相关的资源汇总(书籍、讲座、代码、数据等)

异常检测

什么是异常值、离群点(anomaly)?

异常一般指的是与标准值(或期待值)有偏离的样本,也就是说跟绝大部分数据“长的不一样”。

异常检测的一些特点:

1.异常不一定代表是“坏”的事情,但往往是“有价值”的事情,我们对异常的成因感兴趣

2.异常检测往往是在无监督的模式下完成的—历史数据中没有标签,我们不知道哪些数据是异常。因此无法用监督学习去检测。

异常检测的应用:

1.金融行业的反欺诈、信用卡诈骗检测:把欺诈或者金融风险当做异常

2.罕见病检测:把罕见病当做异常,比如检测早发的阿兹海默症

3.入侵检测:把网络流量中的入侵当做异常

4.机器故障检测:实时监测发现或预测机械故障

5.图结构、群体检测:比如检测疫情的爆发点等

异常检测的应用

IntelControlFlag

“基于10亿条包含各种错误的未标记生产质量代码的机器学习培训,ControlFlag得以通过“异常检测”技术,对传统编程模式展开筛查。无论使用的是哪种编程语言,它都能够有效地识别代码中可能导致任何错误的潜在异常。”

AmazonAWSCloudWatch :

“今天,我们将通过一项新功能增强CloudWatch,它将帮助您更有效地使用CloudWatch警报。…我们的用户可以构建自定义的控制面板,设置警报并依靠CloudWatch来提醒自己影响其应用程序性能或可靠性的问题。”

Google

“GoogleAnalytics(分析)会选择一段时期的历史数据来训练其预测模型。要检测每天的异常情况,训练期为90天。要检测每周的异常情况,训练期为32周。”

异常检测的挑战

1.大部分情况下是无监督学习,没有标签信息可以使用

2.数据是极端不平衡的(异常点仅占总体数据的一小部分),建模难度大

3.检测方法往往涉及到密度估计,需要进行大量的距离/相似度计算,运算开销大

4.在实际场景中往往需要实时检测,这比离线检测的技术难度更高

5.在实际场景中,我们常常需要同时处理很多案例,运算开销大

6.解释性比较差,我们很难给出异常检测的原因,尤其是在高维数据上。但业务方需要了解异常成因

7.在实际场景中,我们往往有一些检测的历史规则,如何与学习模型进行整合

异常检测工具

Python

1.PyOD:超过30种算法,从经典模型到深度学习模型一应俱全,和sklearn的用法一致

2.Scikit-Learn:包含了4种常见的算法,简单易用

3.TODS:与PyOD类似,包含多种时间序列上的异常检测算法

Java

1.ELKI:EnvironmentforDevelopingKDD-ApplicationsSupportedbyIndex-Structures

2.RapidMiner异常检测扩展

R

1.outlierspackage

2.AnomalyDetection

用10行Python代实行异常检测:

异常检测算法

异常检测算法可以大致被分为

1.线性模型(LinearModel):PCA

2.基于相似度的度量的算法(Proximity-basedModel):kNN,LOF,HBOS

3.基于概率的算法(ProbabilisticModel):COPOD

4.集成检测算法(EnsembleModel):孤立森林(IsolationForest),XGBOD

5.神经网络算法(NeuralNetworks):自编码器(AutoEncoder)

评估方法 也不能简单用准确度(accuracy),因为数据的极端不平衡

1.ROC-AUC曲线

2.Precision@Rankk:topk的精准

3.AveragePrecision:平均精准度

主流模型介绍:

如何选择和合并模型

异常检测实践中的技巧

异常检测落地中的考量

1.不要尝试一步到位用机器学习模型来代替传统模型

2.在理想情况下,应该尝试合并机器学习模型和基于规则的模型

3.可以尝试用已有的规则模型去解释异常检测模型

异常检测研究方向

技术交流群

建了技术交流群!想要进 交流群、获取资料、岗位推荐 的同学,可以直接加微信号: dkl88191 。加的时候备注一下: 研究方向 +学校/公司+知乎 ,即可。然后就可以拉你进群了。

强烈推荐大家关注 Python与数据挖掘 知乎账号和 Python学习与数据挖掘 微信公众号,可以快速了解到最新优质文章。

文章推荐

真香!这或许是最全的类别型特征编码的方法总结!

推荐收藏!23个机器学习最佳入门项目(附源代码)

没看完这11 条,别说你精通 Python 装饰器!

60个 VS Code 神级插件,助力打造最强代码编辑器!

太实用了!Schedule模块, Python 周期任务神器!

这4款数据自动化探索 Python 神器,解决99%的数据分析问题!

20个数据分析师必会的数据模型,建议收藏!

真香啊!让 Python 编程起飞的 24 个神操作!

深度盘点:30个用于深度学习、自然语言处理和计算机视觉的顶级 Python

全网超详细!用户画像标签体系建设指南!

机器学习模型验证,这3个 Python 包可轻松解决95%的需求!

精选 30 个炫酷的可视化大屏模板,拿走就用!

够强大!Python 这款可视化大屏不足百行代码!

深度盘点:8000字详细介绍 Python 中的 7 种交叉验证方法


整理不易,有所收获,点个赞和爱心 ❤️, 更多精彩欢迎关注

发布于 2022-07-24 16:49

文章被以下专栏收录

    Python与数据挖掘

    内容首发WX订阅号,专栏与WX订阅号重名:Python学习与数据挖掘,内容专注于Python、数据分析、数据挖掘,人工智能、爬虫,