资源简介
支持向量数据描述(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_SupportVectorDataDesc
评论
共有 条评论