【Machine Learning】笔记:anomaly detection
来源:互联网 发布:vision是什么软件 编辑:程序博客网 时间:2024/05/22 23:31
本文是 Coursera 上 Andrew Ng 的课程 machine learning 第9周的内容之一。
异常检测算法初步
异常检测,虽然主要应用于非监督学习问题,但又有些像监督学习问题。
建立一个模型
正态分布建立异常检测算法
主要思想是建立一个模型
训练集
模型可以写成这样:
所以算法可以这样来做:假设每个特征都服从正态分布,通过样本来估计出每个特征的分布参数,然后计算出新样本的概率密度,来判断它是否为异常点。
评价算法
能否用一个实数来评价算法的性能?这样就能直接看出算法的好坏了。
设想有一些点,已经被标注了是否为异常点。先将一些非异常点(如果混入了少数异常点也不影响)作为 training set,再划分出里面有标注了异常点的 cross validation set 和 test set,然后用这两个集合中的数据进行验证,用预测结果和标签一致的比例来评价算法,这和监督学习很像。
Cross validatin set 中的数据可以用来选择阈值
同样,因为异常点可能很稀疏,依然可以用 F1 值等方法来评价。
异常检测算法 vs. 监督学习
既然有了标注的数据,为什么不直接用监督学习的分类方法,比如 logistic regression 或神经网络呢?什么时候适用异常值检测,什么时候适用监督学习呢?
用异常检测算法的情形:当正样本数很少,而负样本数很多时;当有许多种类的异常时;未来的异常可能和已经出现过的异常都不相同时。而当正负样本都有许多时,就适合用监督学习算法。
选择特征
对该算法影响最大的是,选用什么样的特征。在这点上,有什么好办法呢?
先可以用直方图来画出某个特征,如 hist
等命令,确保它看起来像正态分布,但即使它不是真正的正态分布,算法也可以运行得很好。但如果画出来很偏,或完全不像正态分布,那就可以先对数据进行变换,使得它看起来像正态分布,如果变换了,效果会更好,但不做也可以。
如果在一个特征上,异常点显得比较正常,那就可以人工去分析它问题到底在哪里,想办法构造出新的特征来把它区分出去。这也是误差分析的流程。
多元正态分布
可能会出现这样的情况:数据点的每一个特征都处于正常范围内,但它明显是个异常点。比如有两个特征,基本成比例,且都变动较大的范围,有某个数据点两个特征的值都处于该变动范围内,但不成比例,因此是异常点,但我们之前的方法无法识别出来。
多元正态分布的表达式是:
其中的参数
相比之下,原来的异常检测算法需要自己添加一些如特征相除之类的新特征,才能捕捉不同特征之间的联系,而多元正态分布下的异常检测算法,可以自动捕捉这样的相关性,但计算复杂度会更高,当特征数量很大的时候,多元正态分布的估计协方差矩阵及其求逆非常耗费时间,不建议使用。另外,当样本数量小于特征数量时,多元正态分布的参数无法估计,因此也就无法使用这个模型,而原始的异常检测算法可以很好地工作。
老师推荐,只有在样本数大于10倍的特征数时,才使用多元正态分布。
- 【Machine Learning】笔记:anomaly detection
- Andrew Ng Machine Learning 专题【Anomaly Detection】
- Machine Learning week 9 quiz: Anomaly Detection
- Machine Learning by Andrew Ng --- Anomaly Detection and Recommender systems
- Machine Learning - XV. Anomaly Detection异常检测 (Week 9)
- Coursera Machine Learning 第九周 quiz Anomaly Detection
- Programming Exercise 8: Anomaly Detection and Recommender Systems Machine Learning
- Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly Detection&Recommende
- Machine Learning week 9 quiz: programming assignment-Anomaly Detection and Recommender Systems
- Coursera Machine Learning 第九周 quizProgramming Exercise 8: Anomaly Detection and Recommender Systems
- Anomaly Detection
- Stanford 机器学习笔记 Week9 Anomaly Detection
- USING DEEP LEARNING FOR ANOMALY DETECTION IN RADIOLOGICAL IMAGES
- Realtime Anomaly Detection Using Trajectory-Level Crowd Behavior Learning
- 斯坦福NG机器学习课程:Anomaly Detection笔记
- In-network PCA and anomaly detection阅读笔记
- 13-Anomaly Detection
- Code for Anomaly Detection
- 交换两个变量值的常用方法
- 阿姆斯特朗数
- Python List Comprehension, Dictionary Comprehension
- 《参考ibase4J搭建属于自己的分布式架构》---2.使用maven配置多个环境并运行项目
- install openjdk-7-jdk
- 【Machine Learning】笔记:anomaly detection
- numpy.ndarray 如何转化为 list
- 8.7 暑假集训——树状数组篇
- new/delete,new[]/delete[],malloc,free
- 布局视图实现点击波纹效果
- 文件下载
- Windows下使用Visual Studio 2010 编译ffmpeg全过程
- 静态通讯录
- 【最长公共子序列】(LCS)