机器学习课程笔记(第九周-1)异常检测

课程链接:https://www.coursera.org/learn/machine-learning
参考文章:https://www.cnblogs.com/maxiaodoubao/p/10220292.html

异常检测 Anomaly detection-----机器学习的常见应用


训练出的模型,需要能够根据 xtest 的位置告诉我们其属于一组数据的可能性 p(xtest)。
在上图中,蓝色圈内的数据属于该组数据的可能性较高;而越偏远,属于该组数据的可能性就越低。 这种方法称为密度估计,表达如下:

应用案例:
1. 欺诈检测 Fraud detection
2. 工业生产领域
3. 数据中心的计算机监控

高斯分布 Gaussian Distribution(正态分布)


这里的1/m 有时候也有人写作1/(m-1),在实际生活中几乎没有区别,机器学习中大多使用1/m

异常检测算法的推导

密度估计Density estimation

异常检测算法:
1:选择特征。或者是找出一些我们认为的具有比较反常样本的特征 xi
我们可以尝试找出一些特征,这些特征能看出比如在你的系统里有一些不同寻常的用户可能可以看出他们的反常或欺诈行为。
更为普遍的是 尽可能尝试选择能够描述数据相关的属性的特征
2:拟合出期望和方差
3:计算P(x)

开发一个异常检测的应用

评价异常检测系统的方法:我们先假定已有了一些带标签的数据,我们要考虑的异常检测问题是一个非监督问题,使用的是无标签数据。但如果你有一些带标签的数据能够指明哪些是异常样本,哪些是非异常样本,那么这就是我们要找的能够评价异常检测算法的标准方法 。

先考虑训练集,看成无标签的训练集。
再定义交叉验证集 和测试集。通过这两个集合我们将得到异常检测算法 。具体来说,对交叉验证集和测试集,我们将假设我们的交叉验证集和测试集中有一些异常的样本。

异常检测的推导和评估方法:
1) 根据测试集数据,估计特征的平均值和方差并构建p(x)函数
2) 对CV set,尝试使用不同的 ε 值作为阈值,并预测数据是否异常,根据 F1 值或者查准率与查全率的比例来选择 ε
3) 选出 ε 后,针对Test集进行预测,计算异常检验系统的F1值,或者查准率与查全率之比

异常检测与监督学习

特征选择

特征的选择对异常检测算法至关重要。假设特征不符合高斯分布,算法也能够工作,但最好还是将数据转换成高斯分布。
转换成高斯分布,可以取对数 log(x+c) ,c为非负常数,或 x^c , c为0-1之间的分数

调整目的只有一个,就是让数据看起来更像高斯分布

(Octave中画柱状图 hist 命令)
(在 python 中,通常用 np.log1p() 函数,即 log(x + 1),可以避免出现负数结果,反向函数就是 np.expm1())

如何得到异常检测算法的特征变量:误差分析

步骤:先完整地训练出一个学习算法,然后在一组交叉验证集上运行算法,找出那些预测出错的样本,然后再看看我们能否找到一些其他的特征变量来帮助学习算法,让它在那些交叉验证时判断出错的样本中表现更好。

多元高斯分布 Multivariate Gaussian Distribution

为什么引入多元高斯分布?

我们有特征 x ,它是 n 维实数。我们不要把 p(x1) p(x2) 分开,而要建立一个p(x) 整体的模型。多元高斯分布的参数,包括向量 µ 和一个 n×n 矩阵 Σ,Σ 被称为协方差矩阵

协方差矩阵对模型的影响 和 均值 µ 对中心点的影响 参见博客 https://www.cnblogs.com/maxiaodoubao/p/10220292.html

利用多元高斯分布进行异常检测

利用多元高斯分布开发一个异常检测算法的步骤:
(1)首先 用我们的训练集来拟合模型 p(x) ,算出 µ 和 Σ 
(2)拿到一个新样本 x ,用这个多元高斯分布的公式来计算 p(x)。如果小于 ε 则异常。

多元高斯分布与原始高斯分布


对于一个多元高斯分布模型,如果其协方差矩阵只有正对角线上元素非零,则退化为原始高斯分布模型。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值