zoukankan      html  css  js  c++  java
  • 吴恩达老师机器学习课程学习--课时十五

    课时十五      异常检测

    1、异常检测的描述

    异常检测是机器学习算法的一个应用,举个应用例子,飞机引擎质量检测,假如你是一个飞机引擎制造商,为了进行质量控制测试,你需要测量飞机引擎的一些特征变量,比如引擎转动时产生的热量,或者引擎的震动等等。这样你就有了一个数据集,把这些数据集绘制成图表,

    在构建一个异常检测算法时,我们的训练集数据是无标签的,但是我们假设都是正常的数据集,但是如果有小部分异常数据集也是没关系的,通过训练集构建出一个模型,然后利用这个模型可以检测新的数据是不是异常的。

    上图中,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该组数据的可能性就越低。

    这种方法称为密度估计,表达如下:

     

    2、高斯分布和算法

    通常我们认为变量x符合高斯分布,则其概论密度函数为:

    在利用高斯分布构建异常检测算法时,我们利用测试集来预测总体的,方法如下:

    利用高斯分布开发异常检测算法:

    对于给定的数据集我们要针对每一个特征计算的估计值。

    一旦我们获得了平均值和方差的估计值,给定新的一个训练实例,根据模型计算

     

    作为判定边界。

    3、开发一个异常检测系统

    首先我们要从数据开始,我们从数据集中选取一部分正常数据用于构建训练集,然后用剩下的正常数据和异常数据的混合数据构成交叉检验集合测试集。

    例如:我们有10000台正常引擎的数据,有20台异常引擎的数据。 我们这样分配数据:

    6000台正常引擎的数据作为训练集

    2000台正常引擎和10台异常引擎的数据作为交叉检验集

    2000台正常引擎和10台异常引擎的数据作为测试集

    构建步骤:

    1.根据测试集,我们估计特征的平均值和方差,并构建函数。

    2.对交叉验证集,我们尝试采用不同的值作为阀值,并预测数据是否异常,根据F1值或者查准率与查全率的比例来选择

    3.选出后,针对测试集进行预测,计算异常检验系统的F1值,或者查准率与查全率之比

    4、异常检测和监督学习的差别

     

    异常检测中选择特征:在异常检测算法中,我们选择的特征十分重要,因为异常检测函数是高斯分布函数,如果数据集的分布不是高斯分布,虽然可以用异常检测算法,但是最好还是把数据转换成高斯分布,通过一些数学转换,比如对数函数,次方函数等等。通过数学转换使之符合高斯分布。

    另外一个做法就是误差分析,一个常见的问题是一些异常的数据可能也会有较高的值,因而被算法认为是正常的。这种情况下误差分析能够帮助我们,我们可以分析那些被算法错误预测为正常的数据,观察能否找出一些问题。我们可能能从问题中发现我们需要增加一些新的特征,增加这些新特征后获得的新算法能够帮助我们更好地进行异常检测。

  • 相关阅读:
    IP是什么 DNS 域名与IP有什么不同
    空间、域名与IP之间的关系?
    杨学明老师为深圳某上市企业提供《软件测试技术》内训服务!
    共创力与某上市企业合作的第三期咨询项目正式启动!
    2017.7.28~29,热烈庆祝杨学明老师《研发项目管理》杭州公开课成功举办!
    2017年7月22日~23日,深圳市共创力为某上市企业提供整机设计工程内训服务!
    深圳市共创力咨询第二期“总裁直通车”成功举办!
    阿里巴巴产品需求工程师的三个层次
    共创力咨询推出“总裁直通车”服务!
    2017年7月7日~8日,杨学明老师为深圳蛇口某企业内训课程服务!
  • 原文地址:https://www.cnblogs.com/zhangliqiangvictory/p/13404493.html
Copyright © 2011-2022 走看看