异常检测算法和开发和评估异常检测

异常检测算法的实现过程:
首先我们来说明密度估计的概念,由于服从正态分布,我们假设这里x服从独立假设,所以x的密度p(x)=

异常检测算法和开发和评估异常检测_第1张图片

1、我们选择那些产生异常的特征xi;

2、我们计算出训练集的均值和方差;

3、我们计算出每个新加入的样本的p(x),如果大于门阀值,则说明是正常的,否则则为异常。

异常检测算法和开发和评估异常检测_第2张图片

异常决策举例:

异常检测算法和开发和评估异常检测_第3张图片

 

开发和评估异常检测:

这里我们用监督学习的例子来说明异常检测的评估,好的引擎y=0,异常的y=1.

异常检测算法和开发和评估异常检测_第4张图片

假设我们有10000个正常的引擎,20个异常的引擎,我们的划分是,将6000个正常引擎作为训练集,2000作为验证集,2000个作为测试集,其中训练集全是正常的引擎,验证集和测试集各有10个异常的引擎。

有的人的划分是,让验证集和测试集共同含有相同的4000个引擎,这是不可取的。

异常检测算法和开发和评估异常检测_第5张图片

对于算法的评估,我们不能使用分类的正确率来说明,因为对于正常的引擎来说,异常的个数太小,这个例子属于之前说的偏斜类的分类。我们应该之前的查准率和召回率来评估算法的好坏。

异常检测算法和开发和评估异常检测_第6张图片

异常检测算法和开发和评估异常检测_第7张图片

 

异常检测vs监督学习

 

对于异常检测,由于发生异常属于极少的现象,所以异常的样本很少,或者有时候有一些异常是目前还没有发现的,我们需要根据以后的样本来发现新的异常特征等等。。。这些情况下我们使用异常检测算法。

对于监督学习,由于我们有大量的负类数据,来概括出负类的基本特征,正负类都有相当的样本数量,这种情况下我们使用监督学习算法。

异常检测算法和开发和评估异常检测_第8张图片

异常检测算法和开发和评估异常检测_第9张图片

你可能感兴趣的:(机器学习)