SVM单类异常值检测

SVM是一种广泛使用的分类器,通常用于二分类或多分类问题。然而,在异常点检测的场景中,我们通常会将数据视为一个类别(即正常数据点),并尝试找到那些与正常数据点显著不同的点(即异常点)。这可以通过One-Class SVM(单类支持向量机)来实现。

SVM单类异常值检测代码获取戳此处代码获取戳此处

One-Class SVM的原理是寻找一个超平面,使得正常数据点尽可能地分布在这个超平面的一侧,同时使得超平面与原点(或指定的其他点)之间的距离最大化。这样,那些位于超平面另一侧或远离超平面的点就可以被视为异常点。

具体来说,One-Class SVM会学习一个决策函数,该函数将正常数据点的特征空间映射到一个高维空间中,并在这个高维空间中寻找一个最优超平面。这个超平面会尽可能地将正常数据点与原点分开,同时使得超平面与原点之间的距离最大化。在训练过程中,One-Class SVM会利用核函数(如RBF核、线性核等)将数据映射到高维空间,并在这个空间中寻找最优超平面。

实现步骤

  1. 数据准备:首先,收集并整理好一定量的数据样本,包括各个特征的变量数据。这些数据应该主要是正常数据点,因为我们的目标是找出与这些正常数据点显著不同的异常点。
  2. 数据预处理:对数据进行必要的预处理,如标准化、归一化、降维等。这些步骤可以帮助提高SVM模型的性能,并减少过拟合的风险。
  3. 选择核函数:根据数据的特点和问题的需求,选择一个合适的核函数。常用的核函数包括RBF核、线性核、多项式核等。不同的核函数适用于不同类型的数据和问题。
  4. 训练One-Class SVM模型:使用训练数据来训练One-Class SVM模型。在训练过程中,模型会学习一个决策函数,该函数将正常数据点的特征空间映射到一个高维空间中,并在这个高维空间中寻找一个最优超平面。
  5. 异常检测:将测试数据输入到训练好的One-Class SVM模型中,得到每个测试数据点的决策函数值。根据这些值的大小,可以判断哪些数据点是异常点。通常,那些决策函数值较小的数据点被认为是异常点。

部分代码

%% 导入数据
load('matlab.mat');
X = res(:,1:6); % 特征数据
n = size(X, 1);%% 划分训练集和测试集
rng(1); % 设置随机数种子,以确保结果可重现
train_ratio = 1; % 训练集占比
idx = randperm(n);
X_train = X(idx(1:round(train_ratio*n)), :);%% 数据归一化
[~,ps] = mapminmax(X_train', 0, 1); % 对训练数据进行归一化
X_train_normalized = mapminmax('apply', X_train', ps)'; % 归一化训练数据%% 创建模型
nu = 0.05; % 设置 OCSVM 参数 nu

效果图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue Vant 移动端如何禁止手机调起自带的输入键盘

前言 前不久在公司用Vue2开发了一个手机充值项目,键盘组件用的vant2的NumberKeyboard 数字键盘组件;上线后在IOS端只有一个vant数字键盘组件,但到了Android端,输入框一获取焦点不仅vant数字键盘弹出,连手机自带的键盘…

华为平板手机如何清理应用市场的存储空间

如何清理应用市场的存储空间 适用产品: 手机,平板 适用版本:不涉及系统版本 如果您的应用市场显示应用的数据较大,可能是下载的安装包没有安装成功,导致安装包未自动删除。(可参考:应用市场下…

msyql数据库创建可以远程登录的用户和重置root密码

创建新用户,只能本地连接,无法远程登录。 CREATE USER new_userlocalhost IDENTIFIED BY password; GRANT ALL PRIVILEGES ON *.* TO new_userlocalhost; FLUSH PRIVILEGES; 创建新用户,并授权相关数据库的权限给用户。 GRANT SELECT, INS…

Electron试用 SQLite

在客户端开发中,无论是 PC 端,还是手机端,为了能够访问离线数据,数据经常需要保存到本地,IndexDB 可以用于存储本地数据,IndexDB 是一个对象存储,数据是以 key:value 的形式进行存储和访问的&am…

117篇 | 3D Gaussian Splatting论文

本论文集划分为4个部分:综述&基础(14篇)、NeRF在AIGC(54篇)、NeRF在SLAM(自动驾驶)(25篇)、NeRF之场景建模(25篇) https://t.zsxq.com/3ATyE…

【UnityRPG游戏制作】NPC交互逻辑、动玩法

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:就业…

R语言数据探索与分析-运用时间序列预测模型对成都市API进行预测分析

一、研究背景 “绿水青山就是金山银山,要让绿水青山变成金山银山”让人们深刻的意识到环境的重要性。与此同时,由于现代生活水平的不断提高,所带来的环境污染也不断增多,空气以及环境的污染带来了越来越多的疾病,深刻…

vue2项目webpack3.x打包文件分割优化加载

vue2项目webpack3.x打包文件分割优化加载 0. 项目目录和依赖信息1. 开启 gzip(建议)2. vue2项目配置懒加载(建议)3. 拆分 vendor 包注意:webpack3使用CommonsChunkPlugin实现 本文使用 3 种方案进行叠加优化 优先级按以…

AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

《R语言与农业数据统计分析及建模》学习——并行计算

1、并行计算概念 并行计算是指同时使用多种计算资源解决计算问题的过程。 R语言是一个单线程的程序。在现代多核心处理器上,R无法有效利用所有计算内核。 当下时代,我们需要处理的数据量日渐增大,R的计算模式限制了R处理大规模数据的能力。 …

39 死锁

目录 1.死锁 2.线程同步 3.条件变量 4.案例 死锁 概念 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所占用不会释放的资源而处于的一种永久等待状态 四个必要条件 互斥条件:一个资源每次只能被一个执行流使用 请求…

如何快速搭建nginx服务

华子目录 nginx简介概念特点nginx框架nginx关键工作机制 nginx正向代理功能nginx反向代理功能nginx反向代理的工作流程代理本质 nginx负载均衡部署nginx常用命令systemctl系列nginx自带命令 nginx配置文件主配置文件/etc/nginx/nginx.conf内容结构模块分析配置分析注意示例 ngi…

tomcat打开乱码修改端口

将UTF-8改成GBK 如果端口冲突,需要修改tomcat的端口

电脑找不到msvcp140.dll如何修复?msvcp140.dll丢失的多种解决方法分享

在日常电脑操作过程中,用户可能会遇到一个令人困扰的问题,即屏幕上突然弹出一条错误提示:“由于找不到msvcp140.dll,无法继续执行代码”。这一情况往往导致应用程序无法正常启动或运行,给工作和娱乐带来不便。不过&…

ps科研常用操作,制作模式图 扣取想要的内容元素photoshop

复制想要copy的图片, 打开ps---file-----new ,ctrolv粘贴图片进入ps 选择魔棒工具,点击想要去除的白色区域 然后,cotrol shift i,反选, ctrol shiftj复制,复制成功之后,一定要改…

Vitis HLS 学习笔记--HLS眼中的完美循环嵌套

目录 1. 简介 2. 示例 2.1 不完美循环 2.2 完美循环 2.3 HLS 眼中的循环 3. 总结 1. 简介 在处理嵌套循环时(HDL或HLS工具中),优化循环结构对于实现最佳性能至关重要。嵌套循环的性能优化直接影响着计算的时延和资源利用率。创建完美嵌…

【React】Redux Toolkit的使用

Redux toolkit使用 1. 背景2.文档3. 使用3.1 安装3.2 创建入口文件 redux3.3 redux/index.js3.4 redux/reducer.js3.5 使用示例 1. 背景 Redux Toolkit 出现的背景可以追溯到对 Redux 的使用和开发中出现的一些常见模式和问题。Redux 是一个非常强大的状态管理库,但…

挑战谷歌巨头地位?消息称OpenAI于5月9日发布ChatGPT版搜索引擎 | 最新快讯

来源: IT 之家 5 月 3 日消息,谷歌 Gemini 和微软 Copilot 之间的 AI 大战继续升级,最新消息称 OpenAI 有望今年 5 月 9 日推出基于 ChatGPT 的全新搜索产品,进一步挑战谷歌的传统搜索巨头地位。 Reddit 网友近日发帖,…

JavaFX 动态加载目录下所有WAV文件并逐个播放

在JavaFX中动态加载一个目录下的所有.wav文件并逐个播放,你可以使用java.nio.file包来遍历目录,并使用javax.sound.sampled包来播放音频文件。不过,需要注意的是,JavaFX本身并不直接支持音频播放,但你可以使用Java的标…

Go实现网页 临时电脑目录访问

简介 下载好电影电视剧但是又不想呆在电脑旁边, 你可能只需要开启一个Go服务, 简单几句代码....实现 中间件 做一个简单的包装器, 用于处理所有外部访问。 IP过滤器 过滤IP, 对不符合的IP进行过滤 步骤 代码 IP过滤器 filt…