资源简介
支持向量机SVM故障诊断。支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。
代码片段和文件信息
tic % 计时器
%% 清空环境变量
close all
clear
clc
format compact
%% 数据提取
% 载入测试数据wine其中包含的数据为classnumber = 3wine:178*13的矩阵wine_labes:178*1的列向量
load ([‘E:\李博华\研究生\学习资料\代码数据\数据西储\xichuimf.mat‘])
load ([‘E:\李博华\研究生\学习资料\代码数据\数据西储\xichu_labels1.mat‘])
%选定训练集和测试集
% 将第一类的1-30第二类的60-95第三类的131-153做为训练集
train_xichu = [xichuimf(1:200:);xichuimf(1501:1700:);xichuimf(3001:3200:);xichuimf(4501:4700:)];
% 相应的训练集的标签也要分离出来
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:)];
% 相应的测试集的标签也要分离出来
test_xichu_labels = [xichu_labels1(1001:1150);xichu_labels1(2501:2650);xichu_labels1(3501:3650);xichu_labels1(5001:5150)];
% % 选定训练集和测试集
% % 将第一类的1-30第二类的60-95第三类的131-153做为训练集
% train_xichu = [xichudate(1:150:);xichudate(201:350:);xichudate(401:550:);xichudate(601:750:)];
% % 相应的训练集的标签也要分离出来
% 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:)];
% % % 相应的测试集的标签也要分离出来
% % 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:)];
% % 相应的测试集的标签也要分离出来
% test_xichu_labels =[xichu_labels(1:50);xichu_labels(201:250);xichu_labels(401:450);xichu_labels(601:650)];
%% 数据预处理
% 数据预处理将训练集和测试集归一化到[01]区间
[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自带的归一化函数
% [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
- 下一篇:三相锁相环PLL
相关资源
- 线结构光中心提取算法matlab
- 基线解算的matlab源码
- 基于相位相关的图像平移检测算法m
- 指静脉处理代码
- SIMPLE算法Matlab代码
- 《无人驾驶车辆模型预测控制》书中
- 基于SIFT特征的图像配准MATLAB代码
- 多目标遗传算法matlab程序
- 布谷鸟算法的matlab代码
- MATLAB+背景减除目标检测+鱼头截取
- matlab实现文件读写波形处理,小波变
- RBF神经网络的训练 MATLAB源程序代码
- SMO_matlabfunction.rar
- agent蜂拥的实现matlab
- 如何自定义一个神经网络
- 万有引力搜索算法(Matlab)
- 标准差分进化算法多目标线性规划的
- matlab完整GUI 源程序免费
- matlab神经网络资料
- matlab,深度图转换三维点云,depthma
- matlab生成ply程序
- 测井曲线的MATLAB绘制
- 最大后验实现图像盲复原
- 小波变换 matlab程序
- 基于遗传算法的投影寻踪模型Matlab源
- labview matlab 小波去噪
- 自适应控制算法-matlab编程实现
- 油位计仪表盘识别matlab代码实现
- 罚函数matlab实现
- 蒙特卡洛MATLAB程序
评论
共有 条评论