資源簡介
支持向量機(jī)SVM故障診斷。支持向量機(jī)(Support Vector Machine, SVM)的基本模型是在特征空間上找到最佳的分離超平面使得訓(xùn)練集上正負(fù)樣本間隔最大。SVM是用來解決二分類問題的有監(jiān)督學(xué)習(xí)算法,在引入了核方法之后SVM也可以用來解決非線性問題。
代碼片段和文件信息
tic?%?計(jì)時器
%%?清空環(huán)境變量
close?all
clear
clc
format?compact
%%?數(shù)據(jù)提取
%?載入測試數(shù)據(jù)wine其中包含的數(shù)據(jù)為classnumber?=?3wine:178*13的矩陣wine_labes:178*1的列向量
load?([‘E:\李博華\研究生\學(xué)習(xí)資料\代碼數(shù)據(jù)\數(shù)據(jù)西儲\xichuimf.mat‘])
load?([‘E:\李博華\研究生\學(xué)習(xí)資料\代碼數(shù)據(jù)\數(shù)據(jù)西儲\xichu_labels1.mat‘])
%選定訓(xùn)練集和測試集
%?將第一類的1-30第二類的60-95第三類的131-153做為訓(xùn)練集?
train_xichu?=?[xichuimf(1:200:);xichuimf(1501:1700:);xichuimf(3001:3200:);xichuimf(4501:4700:)];
%?相應(yīng)的訓(xùn)練集的標(biāo)簽也要分離出來
train_xichu_labels?=?[xichu_labels1(1:200);xichu_labels1(1501:1700);xichu_labels1(3001:3200);xichu_labels1(4501:4700)];
%?將第一類的31-59第二類的96-130第三類的154-178做為測試集?;xichudate1(4001:4020:);xichudate1(5001:5020:)
test_xichu?=?[xichuimf(201:350:);xichuimf(1656:1805:);xichuimf(3201:3350:);xichuimf(4751:4900:)];
%?相應(yīng)的測試集的標(biāo)簽也要分離出來
test_xichu_labels?=?[xichu_labels1(1001:1150);xichu_labels1(2501:2650);xichu_labels1(3501:3650);xichu_labels1(5001:5150)];
%?%?選定訓(xùn)練集和測試集
%?%?將第一類的1-30第二類的60-95第三類的131-153做為訓(xùn)練集
%?train_xichu?=?[xichudate(1:150:);xichudate(201:350:);xichudate(401:550:);xichudate(601:750:)];
%?%?相應(yīng)的訓(xùn)練集的標(biāo)簽也要分離出來
%?train_xichu_labels?=?[xichu_labels(1:150);xichu_labels(201:350);xichu_labels(401:550);xichu_labels(601:750)];
%?%?%?將第一類的31-59第二類的96-130第三類的154-178做為測試集
%?%?test_xichu?=?[xichudate(151:170:);xichudate(351:370:);xichudate(551:570:);xichudate(751:770:)];
%?%?%?相應(yīng)的測試集的標(biāo)簽也要分離出來
%?%?test_xichu_labels?=?[xichu_labels(151:170);xichu_labels(351:370);xichu_labels(551:570);xichu_labels(751:770)];
%?%?將第一類的31-59第二類的96-130第三類的154-178做為測試集
%?test_xichu?=?[xichudate(1:50:);xichudate(201:250:);xichudate(401:450:);xichudate(601:650:)];
%?%?相應(yīng)的測試集的標(biāo)簽也要分離出來
%?test_xichu_labels?=[xichu_labels(1:50);xichu_labels(201:250);xichu_labels(401:450);xichu_labels(601:650)];
%%?數(shù)據(jù)預(yù)處理
%?數(shù)據(jù)預(yù)處理將訓(xùn)練集和測試集歸一化到[01]區(qū)間
[train_xichutest_xichu]?=?scaleForSVM(train_xichutest_xichu01);
[mtrainntrain]?=?size(train_xichu);
[mtestntest]?=?size(test_xichu);
dataset?=?[train_xichu;test_xichu];
%?[mtrainntrain]?=?size(train_xichu);
%?[mtestntest]?=?size(test_xichu);
%?
%?dataset?=?[train_xichu;test_xichu];
%?%?mapminmax為MATLAB自帶的歸一化函數(shù)
%?[dataset_scaleps]?=?mapminmax(dataset‘01);
%?dataset_scale?=?dataset_scale‘;
%?
%?train_xichu?=?dataset_scale(1:mtrain:);
%?test_xichu?=?dataset_scale(?(mtrain+1):(mtrain+mtest):?);
%%?pca降維處理????????
????????[dataset_coefdataset_scoredataset_latentdataset_t2]?=?princomp(dataset);
????????dataset_cumsum?=?100*cumsum(dataset_latent)./sum(dataset_latent);
????????index?=?find(dataset_cumsum?>=?0.99);
?????
????????train_xichu?=?dataset_score(1:mtrain:);
????????test_xichu?=?dataset_score(?(mtrain+1):(mtrain+mtest):?);
????????train_xichu?=?train_xichu(:1:index(1));
????????test_xichu?=?test_xichu(:1:index(1));
%%?PSO算法
?pso_option?=?struct(‘c1‘1.5‘c2‘1.7‘maxgen‘100‘sizepop‘20?...
????????????‘k‘0.6‘wV‘1‘wP‘1‘v‘5?...
????????????‘popcmax‘10^2‘popcmin‘10^(-1)‘popgmax‘10^3‘popgmin‘10^(-2));
???????
????????pso_option.maxg
- 上一篇:dianliuzhihuan.mdl
- 下一篇:三相鎖相環(huán)PLL
評論
共有 條評論