資源簡介
支持向量數據描述(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
評論
共有 條評論