当前位置: 首页 > news >正文

Python异常检测- 单类支持向量机(One-Class SVM)

系列文章目录

Python异常检测- Isolation Forest(孤立森林)
python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS)
python异常检测-局部异常因子(LOF)算法
Python异常检测- DBSCAN


文章目录

  • 系列文章目录
  • 前言
  • 一、One-Class SVM原理
  • 二、One-Class SVM实现步骤
  • 三、优缺点
  • 四、应用场景
  • 五、python实现


前言

单类支持向量机(One-Class SVM与传统支持向量机(SVM)不同,是一种非监督的学习算法。您可以使用One-Class SVM异常检测通过学习边界对异常点进行预测。

一、One-Class SVM原理

One-Class SVM(Support Vector Machine)是一种无监督学习算法,用于异常检测和离群点检测。它的原理基于支持向量机的思想,旨在通过构建一个边界来区分正常样本和异常样本。具体是通过构建一个只包含正常样本的决策边界来识别异常样本,One-Class SVM的目标是在特征空间中找到一个最优的超平面,使得正常样本尽可能靠近超平面,而异常样本远离超平面‌。
One-Class SVM的原理表明One-Class SVM 的核心在于选择合适的超平面,以确保正常数据被尽可能包围,而异常数据则尽量远离。为达到这一目标,需要通过优化目标函数来实现的,从而实现最小化超平面到最近正常数据点的距离同时最大化超平面与正常数据之间的距离。
对于一组二维数据,One-Class SVM的目标即就是寻找一个超平面将样本中的正例圈出来-当然,实际是使用的情况下,维数不可能这么低。
在这里插入图片描述

二、One-Class SVM实现步骤

One-Class SVM通过构造原点与单类训练数据之间的超平面,进而可以判断测试数据与单类训练数据之间相似与否,并通过测试集数据与单类训练数据相似性来将其标记为1(相似)或-1(不相似)。其具体实现步骤如下

  • 数据映射-- 核函数
    将正常数据映射到高维特征空间中,使得正常数据点能够被一个超平面所包围。这个超平面被称为决策边界,通过使用核函数来实现One-Class SVM在原始特征空间中找到非线性分割超平面,一般常用的核函数包括线性核、多项式核和高斯核。
  • 寻找最优超平面
    通过最大化超平面与正常数据之间的间隔,寻找一个最优的分割超平面,使得异常点尽可能远离该超平面。正常数据点尽量被包围,并且能离该超平面边界越远越好。 支持向量是离分割超平面最近的正常样本点,它们决定了分割超平面的位置和方向。One-Class SVM通过选择最优的支持向量,以使分割超平面最大化远离正常样本。
  • 异常检测
    对于新的数据点,通过计算其与超平面的距离,来判断该数据点是否为异常。距离较大的数据点更有可能是异常点。

下图展示了一个使用OneClassSVM进行异常检测随机生成的数据生成训练样本X_train后,创建并训练OneClassSVM模型clf来对生成测试样本X_test预测异常情况的可视化展示,包含绘制训练样本、测试样本和异常边界,展示了异常检测的结果。
在这里插入图片描述

三、优缺点

One-Class SVM的优点包括:

  • 不需要异常数据进行训练,只需要正常数据即能够有效地识别异常点或者精准地描绘数据的分布边界;
  • 对于高维数据和复杂的数据分布具有较好的适应性;
  • 可以通过调整模型参数来控制异常点的检测灵敏度;
  • 算法简单,易于实现。

然而,One-Class SVM也有一些限制:

  • 不适合处理具有多个类别的数据集。
  • 在处理高维数据和大规模数据时,计算复杂度较高。
  • 对于类内的数据噪声敏感,噪声太大时可能会过度泛化。
  • 对于数据分布不均匀或存在噪声的情况,效果可能不理想。
  • 不提供关于支持向量的解释信息,难以理解模型决策过程。

四、应用场景

One_Class SVM在异常检测领域有广泛的应用:

  1. 网络安全
    检测网络中的异常行为,如入侵检测。它可以识别与正常网络流量不同的异常流量模式,从而提高网络安全性。

  2. 金融欺诈检测
    检测信用卡欺诈、异常交易和洗钱行为。它可以识别与正常交易模式不符的异常交易。

  3. 工业制造
    监测工业制造中的设备异常和故障。它可以帮助预测设备可能出现的问题,从而减少停机时间和维修成本。

  4. 医疗诊断
    检测医疗图像中的异常,如肿瘤、病变和异常组织。它有助于提高医学诊断的准确性

五、python实现

首先许哟啊确保安装了scikit-learn库,没有安装的话,可以通过如下指令安装:

pip install scikit-learn

然后通过如下Python代码来实现One-Class SVM的算法测试:

from sklearn import svm
from sklearn.datasets import make_blobs
import numpy as np# 创建一个数据集
X, _ = make_blobs(n_samples=100, centers=[[0, 0]], cluster_std=0.5)# 初始化 One-Class SVM 模型
# nu 参数决定了支持向量的数量和训练误差的上限比例
# gamma 是 RBF 内核的系数 (1 / (2 * sigma^2))
clf = svm.OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)# 训练模型
clf.fit(X)# 对新的数据点进行预测
new_data = np.array([[0.5, 0.5], [4.0, 4.0]])
predictions = clf.predict(new_data)# 输出预测结果
print("Predictions:", predictions)
print("Predicted labels: '1' for normal, '-1' for outliers")# 查看支持向量
support_vectors = clf.support_vectors_
print("Support vectors:\n", support_vectors)

参考资料

什么是One-Class SVM
One-Class SVM详解
One-Class SVM异常检测

相关文章:

Python异常检测- 单类支持向量机(One-Class SVM)

系列文章目录 Python异常检测- Isolation Forest(孤立森林) python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子(LOF)算法 Python异常检测- DBSCAN 文章目录 系列文章目录前言一、On…...

基于SpringBoot+Vue+uniapp微信小程序的婚庆摄影小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…...

NGAC访问控制系列三:低代码产品NGAC运用与算法运用

目录 一、基于NGAC的低代码模型权限管理方案 二、多策略访问控制系统限制内部访问的线性时间算法 1、概述 2、权限控制图遍历算法 一、基于NGAC的低代码模型权限管理方案 NGAC在低代码平台的权限决策模型:功能权限数据权限 案例:对于七巧低代码开发平台&…...

Unity3D 面试题收录

Unity3D 客户端面试题收录(持续更新~) 面试题收录 本文收录一些对于 Unity3D 客户端可能遇到的面试题(持续更新~),答案仅出于个人理解,如有偏差,希望指正。 Unity3D MonoBehaviour 生命周期…...

Jrebel热部署不生效解决

打开setting找到build底下的complier勾选 build project automatically 设置自动构建项目 打开setting找到Advanced Setting勾选Complier中的第一项 Jrebel panel中勾选需要热部署的项目模块 项目配置信息:Edit Configuration中进行编辑,配置如下图…...

软件测试学习笔记丨Selenium键盘鼠标事件ActionChains

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22515 本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 说明:本篇博客基于sel…...

CI/CD(持续集成与持续交付)流水线

集成 Jenkins、GitLab Webhook、Nexus 和 RabbitMQ 可以形成一个全面的 CI/CD(持续集成与持续交付)流水线,结合消息队列可以创建事件驱动的工作流。以下是配置这四个工具以实现一个基本的 CI/CD 流程的详细步骤。 前置条件 Jenkins、GitLab、…...

分布式光伏发电有什么优劣势

分布式光伏发电是指在离电力消费地点较近的地方,通过安装光伏发电系统来发电。这种系统通常用于屋顶、地面或其他建筑物上,相比于集中式光伏发电系统,它有一些独特的优势和劣势: 优势: 地理适应性: 分布式…...

Spring Boot框架中的IO

1. 文件资源的访问与管理 在 Spring Boot 中,资源文件的访问与管理是常见的操作需求,比如加载配置文件、读取静态文件或从外部文件系统读取文件。Spring 提供了多种方式来处理资源文件访问,包括通过 ResourceLoader、Value 注解以及 Applica…...

DBeaver连接Hive教程

hive shell:通过hive shell来操作hive,但是至多只能存在一个hive shell,启动第二个会被阻塞,也就是说hive shell不支持并发操作。 基于JDBC等协议:启动hiveserver2,通过jdbc协议可以访问hive,hi…...

Vue-Router源码实现详解

1.Hash模式 hash就是url中#后面的部分hash改变时,页面不会从新加载,会触发hashchange事件,去监听hash改变,而且也会被记录到浏览器历史记录中vue-router的hash模式,主要是通过hashchange事件,根据hash值找…...

程序员节日的日期是10月24日‌程序员日

‌程序员节日的日期是10月24日。‌ 这一天被称为‌中国程序员日或‌1024程序员节,由‌博客园、‌CSDN等自发组织设立,旨在纪念程序员对科技世界的贡献。 程序员节日的由来和意义 1024程序员节的由来可以追溯到2010年,最初由网友提出设立一个…...

联邦学习中的数据异构性

在联邦学习(Federated Learning, FL)领域中, 异构数据(Heterogeneous Data) 是指不同客户端所持有的本地数据在特征分布、类别分布、数量等方面存在差异的数据。这种数据的异质性是联邦学习面临的一大挑战,…...

Python小程序 - 替换文件内容

1. 写入文件c:\a.txt 1)共写入10行 2)每行内容 0123456789 # 1 ls 0123456789 ln 10 with open("c:/a.txt", w,encodingUTF-8) as f:for i in range(ln):f.write(ls\n)######################################### 2 ln 10…...

k8s备份恢复(velero)

velero简介 velero官网: https://velero.io/ velero-github: https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集,按命名空间、资源类型标签选择器进行过滤,从而为备份和恢复的内容提供高度的灵活…...

LED户外屏:面对复杂环境的七大挑战

户外LED显示屏作为现代城市广告和信息传播的重要媒介,其应用范围越来越广泛。然而,与室内环境相比,户外环境的复杂多变对LED显示屏提出了更高的要求。本文将探讨户外LED显示屏在设计和应用过程中必须考虑的七个关键问题。 1. 高分辨率 户外LE…...

LabVIEW自动化流动返混实验系统

随着工业自动化的不断发展,连续流动反应器在化工、医药等领域中的应用日益广泛。传统的流动返混实验操作复杂,数据记录和处理不便,基于LabVIEW的全自动流动返混实验系统能自动测定多釜反应器、单釜反应器和管式反应器的停留时间分布&#xff…...

【性能优化】安卓性能优化之CPU优化

【性能优化】安卓性能优化之CPU优化 CPU优化及常用工具原理与文章参考常用ADB常用原理、监控手段原理监控手段多线程并发解决耗时UI相关 常见场景排查CPU占用过高常用系统/开源分析工具AndroidStudio ProfilerSystraceBtracePerfettoTraceView和 Profile ANR相关ANR原理及常见场…...

springboot二手图书交易系统-计算机设计毕业源码88413

目 录 摘要 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 二手图书交易系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 二手…...

解决ElasticSearch启动成功却无法在浏览器访问问题

目录 前言: 问题复现 : 解决问题: 1、修改sysctl.conf文件 2、在sysctl.conf文件增加这段东西 3、 然后保存退出,输入以下命令使其生效 结语: 前言: 这篇文章是小白我今天突然启动es,发现e…...

稀土有色包芯线良好的导电性

稀土有色包芯线是一种结合了稀土元素和有色金属(如铜、铝、镁等)的特殊线材。以下是对稀土有色包芯线的详细介绍: 一、组成与结构 芯线:由稀土元素和有色金属组成的合金制成。稀土元素(如镧、铈、镁等)的添加量在一定范围内,以确保合金性能的…...

SIP 业务举例之 Call Forwarding Unconditional(无条件呼转)

目录 1. Call Forwarding Unconditional 简介 2. RFC5359 的 Call Forwarding Unconditional 信令流程 PS:Dialog 建立条件 Dialog 会话完全建立 3. Call Forwarding Unconditional 过程总结 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识…...

基于stm32的esp8266的WIFI控制风扇实验

实验案例WIFI控制风扇 项目需求 电脑通过esp8266模块远程遥控风扇。 项目框图 ​ 风扇模块封装 #include "sys.h" #include "fan.h"void fan_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟…...

java中的ScheduledExecutorService介绍和使用案例

ScheduledExecutorService 是 Java 并发包 java.util.concurrent 中的一个接口,它提供了一种机制,允许我们安排一个任务在给定的延迟后运行,或者定期地执行。 主要特点 单次调度:可以安排任务在一定的延迟后执行一次。周期性调度…...

4天涨粉14万!这个AI小众赛道粉丝涨疯了吧?保姆级教程免费教会你!

测一下你的搞钱灵敏度有多高,看下面两张截图,有没有发现什么异常值? 发现了吧? 第一张是10月17号截的,第二张是21号,4天时间粉丝从2.8万飙到16.6万,涨粉14万! 这个号我几天之前就发…...

RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

随着人工智能和大数据时代的到来,传统嵌入式处理器中的CPU和GPU逐渐无法满足日益增长的深度学习需求。为了应对这一挑战,在一些高端处理器中,NPU(神经网络处理单元)也被集成到了处理器里。NPU的出现不仅减轻了CPU和GPU…...

itext 转换word文档转pdf

itext 转换word文档转pdf <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version><scope>compile</scope></dependency> <dependency><groupId>org.a…...

WSL-默认root登录

WSL-默认root登录 使用管理员&#xff0c;打开powershell PS C:\WINDOWS\system32> wsl -l 适用于 Linux 的 Windows 子系统分发版: Ubuntu-22.04 (默认) PS C:\WINDOWS\system32> ubuntu2204.exe config --default-user root PS C:\WINDOWS\system32>修改之后&…...

ASIO网络调试助手之四:浅谈QTcpServer性能

网络上有些质疑Qt Network模块性能的声音,本文将从理论和压测两个方面对比ASIO tcp server和QTcpServer在Windows上的性能,最后给出结论。 一.理论 QTcpServer在Windows上的实现是基于select模型,源码位置:5.12.6\Src\qtbase\src\network\socket\qnativesocketengine_win…...

快手 日常实习一面面经

官网投递&#xff0c;三天约面 线上面试 &#xff08;60mins&#xff09;&#xff1a; 1. 自我介绍 2. 问实习 介绍自己做的业务上一段实习的公司框架和开源的 RPC 框架的区别负责的业务与核心业务的依赖关系场景题 -> 设计高并发下的负载均衡 3. 项目拷打 手写 双检锁…...

匿名聊天网站怎么做/seo需要培训才能找到工作吗

1、当生成一个内部类的对象时&#xff0c;此对象与制造它的外围对象之间就有了一种联系&#xff0c;所以它能访问其外围对象的所有成员&#xff0c;而不需要任何条件。此外&#xff0c;内部类还拥有其外围类的所有元素的访问权。这是如何做到的呢&#xff1f;当某个外围类的对象…...

做视频网站版权怎么解决/搜索引擎关键词排名

碰到问题&#xff1a; 通过SSH远程登录到Linux系统&#xff0c;要在/home目录下面下载一个mysql-5.5.25.tar.gz的安装包 在下载的过程中&#xff0c;不小心把SSH远程连接关闭了&#xff0c;这个时候下载也会中断 必须重新登录到系统&#xff0c;再次手动执行命令&#xff0c;才…...

网站维护托管要多少钱/专业seo站长工具

2021-10-09每日刷题打卡 力扣——链表 92. 反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head …...

做网站的语言有哪些/十大搜索引擎网站

目录一、集合类1. 概述2. 集合类的框架3. 参数化类型和泛型二、Collection 接口三、 集合 Collection 的方法1. 第一类&#xff1a;针对单个元素的操作2. 第二类&#xff1a;针对集合的操作(一次操作多个元素)三、集合元素的遍历1. 第一种遍历方式&#xff1a; 将集合转化为数组…...

天津网站建设优选企业/微信搜一搜怎么做推广

PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件 PHP 能够接收表单数据 PHP 能够发送并取回 cookies PHP 能够添加、删除、修改数据库中的数据 PHP 能够限PHP1.CN中文网是国内最大的PHP资源分享技术交流为主的PHP专业网站&#xff0c;也提供了PHP中文博客&#xf…...

海口网站建设就q479185700上墙/宁波seo怎么做优化

实例可数的类&#xff0c;注意枚举也是类 可以修改构造&#xff0c;添加成员 可以提升代码的表现力。也有一定的性能开销 code package com.yzdzy.kotlinenum class LogLevel(val id: Int) {VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5);fun getTag(): St…...