资源简介

支持向量数据描述(Support Vector Data Description,SVDD)是一种单值分类算法,能够实现目标样本和非目标样本的区分。故障检测(异常检测)实质上是一种单值分类问题,将正常样本和异常样本区分开来。基于 SVDD 的故障检测(异常检测)流程一般为: 1. 获取正常样本数据集。 2. 训练 SVDD 超球体,获取超球体的相关参数(阈值、支持向量等等)。 3. 计算测试样本到超球体的球心距,通过比较球心距和阈值来判断该测试样本是否为异常样本。 代码主要包括: 1. 应用例子(包含了数据)(demo.m) 2. SVDD的训练函数,获取支持向量和超球体半径(svdd_train.m) 3. SVDD的测试函数,获取测试样本的球心距(svdd_test.m) 4. SMO算法用于快速解决SVDD的Lagrange对偶问题 (svdd_smo.m)

资源截图

代码片段和文件信息

% DEscriptION
% Fault detection based on Support Vector Data Description
%
%
% ---------------------------------------------------------------------%

clc
close all
% clearvars
addpath(genpath(pwd))

% Load  data (X: training data  Y: testing data)
load (‘.\data\X.mat‘)
load (‘.\data\Y.mat‘)

% Normalization (in general this step is important for fault detection)
[X_sY_s] = normalize(XY);

% Set parameters 
C = 0.5;   % trade-off parameter
s = 9;     % kernel width
ker = struct(‘type‘‘gauss‘‘width‘s);

% Train SVDD hypersphere
model = svdd_train(X_sCker);

% Test a new sample Y (vector of matrix)
d = svdd_test(modelY_s);

% Plot the results
plotResult(model.Rd)


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-10-16 13:05  data\
     文件       39534  2019-05-24 18:34  data\SVDD.png
     文件       27972  2019-05-24 15:38  data\X.mat
     文件        6012  2019-05-24 15:38  data\Y.mat
     文件         713  2019-05-31 09:33  demo.m
     目录           0  2019-10-16 13:05  func\
     文件        3502  2019-05-24 15:53  func\computeKM.m
     文件        1076  2019-05-24 15:54  func\normalize.m
     文件        1181  2019-05-24 16:02  func\plotResult.m
     文件         846  2019-05-28 14:31  func\svdd_opt.m
     文件        1438  2019-06-02 14:19  func\svdd_smo.m
     文件         696  2019-06-02 14:20  func\svdd_test.m
     文件        1612  2019-06-02 14:21  func\svdd_train.m
     目录           0  2019-10-16 13:05  ref\
     文件      318947  2019-05-28 14:29  ref\Tax-Duin2004_Article_SupportVectorDataDescription.pdf

评论

共有 条评论