检测概率和虚警概率_用Python中从头开始的实现完整的异常检测算法

本文详细介绍了如何从零开始使用Python开发异常检测算法。通过计算均值、方差和概率,以及利用精度、召回率和F1分数评估,确定异常检测阈值。并使用Andrew Ng的机器学习课程数据集进行实例演示。
摘要由CSDN通过智能技术生成
38569e35c8e929e0013a0fa768628dd1.png

> Photo by Scott Umstattd on Unsplash

利用概率的异常检测算法

异常检测可以作为离群分析的统计任务来对待。 但是,如果我们开发一个机器学习模型,它可以自动化,并且像往常一样可以节省大量时间。 有很多异常检测用例。 信用卡欺诈检测,故障机器检测或基于其异常功能的硬件系统检测,基于病历的疾病检测都是很好的例子。 还有更多用例。 并且异常检测的使用只会增加。

在本文中,我将解释从头开始用Python开发异常检测算法的过程。

公式和过程

与我之前解释的其他机器学习算法相比,这将简单得多。 该算法将使用均值和方差来计算每个训练数据的概率。

如果一个训练示例的概率很高,那是正常的。 如果某个训练示例的概率较低,则为异常示例。 对于不同的训练集,高概率和低概率的定义将有所不同。 稍后我们将讨论如何确定。

如果我必须解释异常检测的工作过程,那非常简单。

· 使用以下公式计算平均值:

fc7bca242e532dacfa464b16a930d356.png

这里m是数据集的长度或训练数据的数量,xi是一个训练示例。 如果您拥有多个训练功能,那么大多数时候您将需要为每个功能计算平均值。

2.使用以下公式计算方差:

6a059da55e71e49dc229c5061ea8bfe0.png

此处,mu是从上一步计算得出的平均值。

3.现在,使用此概率公式计算每个训练示例的概率。

f8d2c4697e9f4b360bcac022cc54ef31.png

不要为这个公式中的加号感到困惑! 这实际上是对角线形状的变化。

稍后我们将实现算法时,您将看到它的外观。

4.我们现在需要找到概率的阈值。 正如我之前提到的,如果训练示例的概率较低,那么这就是一个异常示例。

低概率是多少概率?

没有通用的限制。 我们需要为我们的训练数据集找到答案。

我们从步骤3中获得的输出中获取一系列概率值。对于每种概率,如果数据是异常或正常的,请找到标签。

然后计算一系列概率的精度,召回率和f1分数。

可以使用以下公式计算精度

8db54777b6fe32bd1a187c9abbf5ac77.png

召回率可以通过以下公式计算:

670644f1f42f024f262367fba5fffacf.png

在此,"正肯定"是指算法将示例检测为异常并且实际上是异常的情况下的数量。

当算法将示例检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值