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异常检测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/899517.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1024程序员日|向改变世界的程序员 致敬!

“给我一行代码,我将点亮整个服务器” “给我一个键盘,我就能征服数字世界” 今天 10月24号 是广大程序员“法定”节日(据说是自定的) 因为1024是2的十次方 二进制计数的基本计量单位 1GB 1024MB,1MB 1024KB……

机器学习理论系列——线性模型(上)

系列文章目录 文章目录 线性模型线性回归线性回归与线性模型一元和多元线性回归最小二乘法损失函数与均方误差最小二乘与闭式解 正则化为什么引入正则化 L 1 L^1 L1, L 2 L^2 L2正则化 梯度下降什么是梯度下降算法上的体现 附录 线性模型 线性是数学中的基本概念&a…

面试官:Zabbix 和 Prometheus 到底怎么选?

新公司要上监控,面试提到了 Prometheus 是公司需要的监控解决方案,我当然是选择跟风了。 之前主要做的是 Zabbix,既然公司需要 Prometheus,那没办法,只能好好对比一番,了解下,毕竟技多不压身。…

家庭宽带的ip地址是固定的吗?宽带ip地址怎么修改‌

在家庭网络环境中,IP地址的分配和管理是用户常关注的问题。本文将探讨家庭宽带IP地址的固定性,并介绍如何修改宽带IP地址,以满足用户的不同需求。 一、家庭宽带的IP地址是否固定? 关于家庭宽带的IP地址是否固定,答案并非一概而论…

Could not find artifact cn.hutool:hutool-all:jar:8.1 in central 导入Hutool报错

<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.9</version></dependency> 引入hutool 8.1版本的工具…

采用 Redis+数据库为建立线上药品销售系统

目录 案例 【说明】 【问题1】(9分) 【问题2】(9分) 【问题3】(7 分) 【答案】 【问题1】答案 【问题2】答案 【问题3】答案 相关推荐 案例 阅读以下关于数据库设计的叙述&#xff0c;回答问题 1 至问题 3 。 【说明】 某医药销售企业因业务发展&#xff0c;需要建立…

Windows图形界面(GUI)-QT-C/C++ - QT基本概念 - 安装配置 - QT Creator

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 QT 基本概念 QT 安装配置 QT Creator 界面布局 快捷操作 QT 基本概念 QT 简介 QT是一个跨平台的C图形用户界面应用程序开发框架。 QT支持多种操作系统&#xff0c;包括Windows、Lin…

2024年必收藏!最全 禅道 项目管理软件各版本安装部署全攻略

一、禅道简介 1. 禅道是什么&#xff1f;功能强大的项目管理软件。 禅道是一款专业的国产开源研发项目管理软件&#xff0c;集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体&#xff0c;完整覆盖了研发项目管理的核心流程。 管理思想基于国际流行的敏捷…

Ovis: 多模态大语言模型的结构化嵌入对齐

论文题目&#xff1a;Ovis: Structural Embedding Alignment for Multimodal Large Language Model 论文地址&#xff1a;https://arxiv.org/pdf/2405.20797 github地址&#xff1a;https://github.com/AIDC-AI/Ovis/?tabreadme-ov-file 今天&#xff0c;我将分享一项重要的研…

咸鱼自动发货 免费无需授权

下载&#xff1a;&#xff08;两个都可以下&#xff0c;自己选择&#xff09; https://pan.quark.cn/s/1e3039e322ad https://pan.xunlei.com/s/VO9ww89ZNkEg_Fq1wRr-fk9ZA1?pwd8x9s# 不是闲管家 闲鱼自动发货&#xff08;PC端&#xff09; 暂不支持密&#xff0c;免费使…

论文阅读与写作入门

文章目录 1.阅读第一篇论文(1)论文结构(2)目标 2.使用GPT辅助论文的阅读与写作3.专有名词(1)架构(2)网络(3)机器学习 4.文献翻译软件5.如何判断(你自己的)研究工作的价值or贡献【论文精读李沐】6.经典论文(1)AlexNet 2012(2)FCN 全卷积 2014(3)ResNet&#xff1a;残差学习&…

【Spring篇】Spring的Aop详解

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】【Mybatis篇】【Spring篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;初始Sprig AOP及…

通过运行窗口呼出Windows功能的快捷命令集合

平时使用电脑需要快速调出Windows的一些功能设置&#xff0c;你们是怎么样操作的呢&#xff1f;今天给大家归集一些通过运行窗口快速调出Windows功能的快捷命令&#xff0c;供朋友们参考。示例如下图&#xff0c;各个功能命令集合见表格.

Python实现贪吃蛇大作战

初始版本 初始版本&#xff0c;只存在基本数据结构——双向队列。 游戏思路 贪吃蛇通过不断得吃食物来增长自身&#xff0c;如果贪吃蛇碰到边界或者自身则游戏失败。 食物是绿色矩形来模拟&#xff0c;坐标为随机数生成&#xff0c;定义一个蛇长变量&#xff0c;判断蛇头坐标和…

需求分析基础指南:从零开始理解需求分析

目录 从零开始理解需求分析什么是需求分析&#xff1f;需求分析的目标需求分析的基本原则需求分析的各个阶段需求分析的常用方法和工具编写需求文档总结 从零开始理解需求分析 需求分析是软件开发过程中不可或缺的一环&#xff0c;它帮助我们明确用户的需求&#xff0c;确保最…

养殖场大型全自动饲料颗粒加工机械设备

随着养殖业的快速发展&#xff0c;对饲料加工设备的需求也日益增长。全自动饲料颗粒机作为现代养殖场的重要制粒设备&#xff0c;其自动化、高效化和智能化特点&#xff0c;不仅提高了饲料生产效率&#xff0c;还保障了饲料质量&#xff0c;为养殖业的可持续发展提供了有力支持…

关于jmeter中没有jp@gc - response times over time

1、问题如下&#xff1a; jmeter没有我们要使用的插件 2、解决方法&#xff1a; 选择下面文件&#xff0c;点击应用&#xff1b; 3、问题解决 ps&#xff1a;谢谢观看&#xff01;&#xff01;&#xff01;

【AIGC】AI如何匹配RAG知识库:混合检索

混合搜索 引言单检索的局限性单检索例子 混合检索拆解实现完整代码 总结 引言 RAG作为减少模型幻觉和让模型分析、回答私域相关知识最简单高效的方式&#xff0c;我们除了使用之外可以尝试了解其是如何实现的。在实现RAG的过程中&#xff0c;最重要的是保证召回的知识的准确性…

红日靶场(三)1、环境介绍及环境搭建

1、靶场介绍 红日靶场03是一个用于安全测试和渗透测试的虚拟化环境&#xff0c;可以帮助用户通过模拟攻击和防御场景来提升网络安全技能。该靶场包含了多个虚拟机和网络配置&#xff0c;用户可以在其中进行各种安全测试活动&#xff0c;如信息收集、漏洞利用、权限提升等。 2…