【SVR-SVDD】基于支持向量-SVDD 进行异常检测研究(Matlab代码实现)

简介: 【SVR-SVDD】基于支持向量-SVDD 进行异常检测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

1.1 基于SVDD的故障检测

基于SVDD的故障检测方法是1种典型的单类划分方法。基本思想是在高维空间中找到1个中心为ap 半径为R的最小体积超球体包围尽可能多的目标数据,如图1所示。对于1个新样木,通过判断新样本是否在超球体内来实现分类,如果在超球内,则被接受,否则被拒绝。使用SVDD进行故障检测时[10],仅使用正常样本数据集对模型进行训练,获得包络最多正常样本数据点的最小体积超球体。

image.gif 编辑

image.gif 编辑式中:x为测试样本;xk为训练样本中支持向量。使用基于SVDD方法,进行故障检测时,计算测试样本x至由正常样本数据集训练得到超球体中心αp的距离,若D(x) >R则样本x位于超球体之外,此时判定机组发生了故障,若D(x)≤R,则样本x位于超球体之内,此时判定机组正常运行。

  • 用于单类或二元分类的 SVDD 模型
  • 多种核函数(线性、高斯、多项式、Sigmoid、拉普拉斯函数)
  • 可视化 2D 或 3D 数据的决策边界
  • 使用贝叶斯优化、遗传算法和p粒子群优化的参数优化
  • 加权 SVDD 模型
  • 混合内核 SVDD 模型 (K =w1×K1+w2×K2+...+wn×Kn)

📚2 运行结果

2.1 基本SVDD 模型

image.gif 编辑

image.gif 编辑

image.gif 编辑

2.2 二分类SVDD 模型

image.gif 编辑

2.3 DimReduPCA

image.gif 编辑

image.gif 编辑

image.gif 编辑

2.4 HybridKernelSVDD

image.gif 编辑

image.gif 编辑

2.5 KernelFunction

image.gif 编辑

2.6 ObservationWeight

image.gif 编辑

image.gif 编辑

image.gif 编辑

2.7 ParameterOptimization

image.gif 编辑

image.gif 编辑 image.gif 编辑

image.gif 编辑

部分代码:

% set parameter

cost = 0.9;

kernel = BaseKernel('type', 'gaussian', 'gamma', 1.5);

% optimization setting

opt.method = 'pso'; % bayes, ga  pso

opt.variableName = { 'cost', 'gamma'};

opt.variableType = {'real', 'real'}; % 'integer' 'real'

opt.lowerBound = [10^-2, 2^-6];

opt.upperBound = [10^0, 2^6];

opt.maxIteration = 20;

opt.points = 3;

opt.display = 'on';

svddParameter = struct('cost', cost, ...

                      'kernelFunc', kernel, ...

                      'optimization', opt, ...

                      'KFold', 5);

% creat an SVDD object

svdd = BaseSVDD(svddParameter);

% train SVDD model

svdd.train(trainData, trainLabel);

% test SVDD model

results = svdd.test(testData, testLabel);

% Visualization

svplot = SvddVisualization();

svplot.boundary(svdd);

svplot.distance(svdd, results);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]张正智,周赛,王占伟,王林,谈莹莹,梁博阳.面向缺失数据基于SVR-SVDD的冷水机组故障检测方法[J].建筑科学,2023,39(02):193-201.DOI:10.13614/j.cnki.11-1962/tu.2023.02.23.

[2]田慧,刘维滨.基于单分类算法SVDD的柴油机故障预测研究[J].中国水运(下半月),2022,22(09):70-72.

[3]赖思银.基于PCA和改进SVDD的异常检测算法[J].微型电脑应用,2022,38(08):129-132.

🌈4 Matlab代码实现

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
21小时前
|
机器学习/深度学习 传感器 编解码
【基于STFT-CNN-SVM的故障诊断】一种融合短时傅里叶变换(STFT)、卷积神经网络(CNN)和支持向量机(SVM)的故障诊断研究(Matlab代码实现)
【基于STFT-CNN-SVM的故障诊断】一种融合短时傅里叶变换(STFT)、卷积神经网络(CNN)和支持向量机(SVM)的故障诊断研究(Matlab代码实现)
|
21小时前
|
传感器 机器学习/深度学习 算法
多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)
多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)
|
21小时前
|
机器学习/深度学习 传感器 负载均衡
基于优化的启发式集成低能耗自适应集群层次结构协议(OHILEACH)(Matlab代码实现)
基于优化的启发式集成低能耗自适应集群层次结构协议(OHILEACH)(Matlab代码实现)
|
21小时前
|
传感器 机器学习/深度学习 数据采集
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
|
21小时前
|
机器学习/深度学习 数据采集 编解码
【STFT-CNN-BiGRU的故障诊断】基于短时傅里叶变换(STFT)结合卷积神经网络(CNN)与双向门控循环单元(BiGRU)的故障诊断研究(Matlab代码实现)
【STFT-CNN-BiGRU的故障诊断】基于短时傅里叶变换(STFT)结合卷积神经网络(CNN)与双向门控循环单元(BiGRU)的故障诊断研究(Matlab代码实现)
|
21小时前
|
人工智能 并行计算 算法
基于 MATLAB 的电力系统动态分析研究【IEEE9、IEEE68系节点】​
基于 MATLAB 的电力系统动态分析研究【IEEE9、IEEE68系节点】​
|
21小时前
|
机器学习/深度学习 算法 调度
基于非对称纳什谈判的多微网电能共享运行优化策略(Matlab代码实现)
基于非对称纳什谈判的多微网电能共享运行优化策略(Matlab代码实现)
|
21小时前
|
算法 新能源 Python
【并网光伏阵列】使用SimPowerSystems进行并网光伏阵列研究(Simulink仿真实现)
【并网光伏阵列】使用SimPowerSystems进行并网光伏阵列研究(Simulink仿真实现)
|
21小时前
|
安全 调度 Python
【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究(Matlab代码实现)
【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究(Matlab代码实现)
|
21小时前
|
机器学习/深度学习 存储 算法
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)