Tag Archives: Anomaly Detection

【MachineLearning】Anomaly Detection——Anomaly Detection using the Multivariate Gaussian Distribution (Optional)

在上一节课中,我们学习了多元高斯分布(Multivariate Gaussian Distribution),并讨论了一些你可以建立的分布通过改变参数均值μ和协方差矩阵Σ中的标准差σ的值。在本节课程中,让我们看看这些想法,并把它们应用到开发一个与之前不同的异常检测算法中。这节课主要讲了,①原始模型和多元高斯模型的计算流程;②原始(检测算法)模型和多元高斯模型的区别,其中(最重要的)使用的条件。

Continue reading

【MachineLearning】Anomaly Detection——Multivariate Gaussian Distribution (Optional)

在本节和下一节课程中,我们将会给你讲在我们目前开发的异常检测算法的基础上更多的扩展,为了解决这种(异常检测算法识别不出的某些异常样本的)情况(下文会说明具体这是什么情况),在这个扩展中我们会用到多元高斯分布(Multivariate Gaussian Distribution),这是一个既拥有很多优点,又拥有很多缺点的方法,有时通过这个方法(多元高斯分布)可以捕获到之前算法所不能发现的异常。

本节将会给大家讲解多元高斯分布(Multivariate Gaussian Distribution),通过改变参数特征平均值μ(控制分布中心,即分布的peak)协方差矩阵Σ的主副对角线元素(主对角线是特征的标准差,控制对应特征的分布range;副对角线控制偏向方向,类似斜率。一般协方差矩阵除主对角线以外的元素都是0),给大家图像上的直观认识。

Continue reading

【MachineLearning】Anomaly Detection——Choosing What Features to Use

到现在为止你见过了异常检测算法,并且我们谈到了如何评估一个异常检测算法。当你要应用异常检测算法,有一个有巨大影响的是它表现地如何,你用了什么特征(你选择了什么特征)给异常检测算法。本节我们将要学习的是①如何将数据“高斯化”(原本不是高斯分布的数据集X,通过改变使用幂函数如X^(1/2)或者对数函数log(X),使其变成更接近高斯分布的数据集);②直方图函数的使用(可视化数据集的分布);如何提出新特征(其实这里的“提出”的含义,一般是在原本的基础上“组合”成新特征),以及在选特征方面的一些参考建议。

注:关于提出新特征。其实就是从更高维(增加新特征,这个新特征通常是几个原本特征的函数组合)的空间中,显示出原本维度空间中显示不出来的异常样本。

Continue reading

【MachineLearning】Anomaly Detection——Anomaly Detection vs. Supervised Learning

在上一节课程中,我们学习了评估异常检测算法的流程,同时我们使用了标记过的数据,我们用异常的(y=1)和非异常的(y=0)来表示标记。那就有一个问题了——既然我们有了对是否异常的标记数据,何不用监督学习算法(logistic regression或者神经网络),来尝试直接从我们的数据中计算预测值是y=1的还是y=0的呢?

在本课中,我们将会和你分享一些想法以及什么时候可能更应该使用异常检测算法,什么时候使用监督学习算法更有成果。

注:正样本(y=1,正样本是异常引擎)。

Ps:个人认为,在正样本很少,不论是否包含了足够多的异常类型的时候,就更推荐使用异常检测;在正负样本差不多多(且数据量也很大),几乎包含了所有异常类型的时候,就更推荐使用监督学习。

Continue reading

【MachineLearning】Anomaly Detection——Gaussian Distribution

在本节课程中,我们将会讲到高斯分布(Gaussian distribution),也被称为是正态分布(Normal distribution)。如果你很熟高斯分布(Gaussian distribution)的话,其实完全可以跳过这节课。但如果你对这方面不清楚还是好好的听我讲完这节课吧。在课程后面,我们将会应用高斯分布到我们的异常检测算法中去。 Continue reading

【MachineLearning】Anomaly Detection——Problem Motivation

在这一系列中的课程中,我将会讲到一个叫做“异常检测”(Anomaly Detection)的问题,这是一个在你使用机器学习算法时遇到的一个非常普遍的问题。同时,比较有趣的一个方面它是针对无监督学习的问题,但其实又类似一些监督学习问题。要注意的是:训练时候用训练集(Training sets),测试训练效果(泛化能力)参数的时候用测试集(Test sets)。 Continue reading