吴恩达机器学习笔记 三十四 异常检测算法 开发和评估一个异常检测系统

本文主要是介绍吴恩达机器学习笔记 三十四 异常检测算法 开发和评估一个异常检测系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 事件发生的概率 p(x) 是各个特征的概率的乘积,因为他们是相互独立的。例如检测飞机发动机是否异常,概率为发动机很热的概率和振动很大的概率乘起来。

异常检测算法具体的步骤如下

举一个例子:

一个有 x1、x2 两个特征的数据集,这两个特征的高斯分布分别如图右边所示,将两个概率乘起来得到左下角的图,越靠近中心的概率越大,越可能是正常的,而边缘的概率更低,更可能是异常数据。

 

评估一个异常检测算法

实数评估( real-number evaluating):改变一个特征或者参数可以看出模型是否变得更好或更差 。

假设我们有一些有标签的数据,设 y = 0 为正常, y = 1 为异常,那么假设训练集的所有 y 都为 0 ,即使有几个实际上是 1 也不影响算法工作。如果有很少几个异常的样本,那么创建包含异常样本的交叉验证集和测试集,用交叉验证集调参数,用测试集看结果。

举一个例子:

飞机发动机的检测,假设有10000个正常的样本和20个异常的样本,我们拿6000个正常的样本当做训练集用来训练算法,拿2000个正常的样本和10个异常的样本用来调整算法的参数,剩下的当做测试集。

但是当异常样本的数量非常非常少时,也可以不要测试集,只用训练集和交叉验证集,这种做法的缺点是没办法评估模型在未来的真实数据中的表现。注意,这个过程没有标签,仍是无监督学习

 

由于这个数据集的数据非常偏斜(正常样本很多,异常样本很少),可以用之前讲过的精确率召回率F1分数这些指标来评估算法。 

 

这篇关于吴恩达机器学习笔记 三十四 异常检测算法 开发和评估一个异常检测系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/873378

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)