资源简介
CS(布谷鸟算法)、PSO(粒子群优化算法)源码中文逐行注释,很好的学习材料。
代码片段和文件信息
tic % 计时器
%% 清空环境,准备数据
close all
clear
clc
format compact
% 载入测试数据wine其中包含的数据类别数为3;wine:178*13的矩阵wine_labes:178*1的列向量
load wine
% 选定训练集和测试集
% 将第一类的1-30第二类的60-95第三类的131-153做为训练集
train_wine = [wine(1:30:);wine(60:95:);wine(131:153:)];
% 相应的训练集的标签也要分离出来
train_wine_labels = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)];
% 将第一类的31-59第二类的96-130第三类的154-178做为测试集
test_wine = [wine(31:59:);wine(96:130:);wine(154:178:)];
% 相应的测试集的标签也要分离出来
test_wine_labels = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)];
% 数据预处理
% 数据预处理将训练集和测试集归一化到[01]区间
[mtrainntrain] = size(train_wine);
[mtestntest] = size(test_wine);
dataset = [train_wine;test_wine];
[dataset_scaleps] = mapminmax(dataset‘01);
dataset_scale = dataset_scale‘;
train_wine = dataset_scale(1:mtrain:);
test_wine = dataset_scale( (mtrain+1):(mtrain+mtest): );
%% CS-SVM
time=20;
n=20; % n为巢穴数量
pa=0.25; % 被宿主发现的概率
dim = 2; % 需要寻优的参数个数
Lb=[0.010.01]; % 设置参数下界
Ub=[100100]; % 设置参数上界
% 随机初始化巢穴
nest=zeros(ndim);
for i=1:n % 遍历每个巢穴
nest(i:)=Lb+(Ub-Lb).*rand(size(Lb)); % 对每个巢穴,随机初始化参数
end
fitness=ones(1n); % 目标函数值初始化
[fminbestnestnestfitness]=get_best_nest_svm(nestnestfitnesstrain_wine_labelstrain_winetest_wine_labelstest_wine); % 找出当前最佳巢穴和参数
%% 迭代开始
for t=1:time
new_nest=get_cuckoos(nestbestnestLbUb); % 保留当前最优解,寻找新巢穴
[~~nestfitness]=get_best_nest_svm(nestnew_nestfitnesstrain_wine_labelstrain_winetest_wine_labelstest_wine); % 找出当前最佳巢穴和参数
new_nest=empty_nests(nestLbUbpa); % 发现并更新劣质巢穴
% 找出当前最佳巢穴和参数
[fnewbestnestfitness]=get_best_nest_svm(nestnew_nestfitnesstrain_wine_labelstrain_winetest_wine_labelstest_wine);
if fnew fmin=fnew;
bestnest=best ;
end
end
%% 打印参数选择结果
bestobjfun=fmin;
bestc=bestnest(1);
bestg=bestnest(2);
disp(‘打印参数选择结果‘);
str=sprintf(‘Best c = %g,Best g = %g‘bestcbestg);
disp(str)
%% 利用最佳的参数进行SVM网络训练
cmd_gwosvm = [‘-c ‘num2str(bestc)‘ -g ‘num2str(bestg)];
model_gwosvm = svmtrain(train_wine_labelstrain_winecmd_gwosvm);
%% SVM网络预测
[predict_labelaccuracy] = svmpredict(test_wine_labelstest_winemodel_gwosvm);
% 打印测试集分类准确率
total = length(test_wine_labels);
right = sum(predict_label == test_wine_labels);
disp(‘打印测试集分类准确率‘);
str = sprintf( ‘Accuracy = %g%% (%d/%d)‘accuracy(1)righttotal);
disp(str);
%% 结果分析
% 测试集的实际分类和预测分类图
figure;
hold on;
plot(test_wine_labels‘o‘);
plot(predict_label‘r*‘);
xlabel(‘测试集样本‘‘FontSize‘12);
ylabel(‘类别标签‘‘FontSize‘12);
legend(‘实际测试集分类‘‘预测测试集分类‘);
title(‘测试集的实际分类和预测分类图‘‘FontSize‘12);
grid on
snapnow
%% 显示程序运行时间
toc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-09-05 17:22 CS-SVM\
文件 3051 2016-09-05 17:22 CS-SVM\CS_SVM_exmp.m
文件 2716 2016-09-05 17:00 CS-SVM\CS_SVR_exmp.m
文件 6483 2016-09-05 16:52 CS-SVM\cuckoo_ori_with_chinese_note.m
文件 999 2016-09-05 16:49 CS-SVM\empty_nests.m
文件 426 2016-09-05 16:49 CS-SVM\fobj.m
文件 676 2016-09-05 17:22 CS-SVM\get_best_nest.m
文件 698 2016-09-05 17:21 CS-SVM\get_best_nest_svm.m
文件 1629 2016-09-05 16:49 CS-SVM\get_cuckoos.m
文件 70 2016-09-05 16:49 CS-SVM\mymae.m
文件 85 2016-09-05 16:49 CS-SVM\mymape.m
文件 74 2016-09-05 16:49 CS-SVM\mymse.m
文件 402 2016-09-05 17:13 CS-SVM\objfun.m
文件 376 2016-09-05 16:49 CS-SVM\simplebounds.m
文件 20168 2016-09-05 17:17 CS-SVM\wine.mat
文件 447 2016-09-05 16:49 CS-SVM\wndspd.mat
目录 0 2016-09-05 16:45 PSO-SVM\
文件 426 2016-09-05 16:14 PSO-SVM\fobj.m
文件 108 2016-09-05 15:04 PSO-SVM\fun.m
文件 70 2016-09-05 16:14 PSO-SVM\mymae.m
文件 85 2016-09-05 16:14 PSO-SVM\mymape.m
文件 74 2016-09-05 16:14 PSO-SVM\mymse.m
文件 402 2016-09-05 17:12 PSO-SVM\objfun.m
文件 4106 2016-09-05 16:43 PSO-SVM\PSO_SVM_exmp.m
文件 3814 2016-09-05 17:00 PSO-SVM\PSO_SVR_exmp.m
文件 2276 2016-09-05 16:11 PSO-SVM\pso_test.m
文件 20168 2016-09-05 16:37 PSO-SVM\wine.mat
文件 447 2016-09-05 16:14 PSO-SVM\wndspd.mat
- 上一篇:计算机操作系统 翟一鸣 清华大学后题答案
- 下一篇:步进电机的选型与计算
相关资源
- 从动态晶格QCD模拟得出迷人的四夸克
- 易语言EXCEL另存为CSV文件源码
- 美松打印机SDK MsPrintSDK-Demo-DLL-CShare-
-
Temporal-ba
sed Multi-Strokes Sketchy Graphi - 压缩感知常见测量矩阵一维仿真信号
- IP 网络存储IP SAN解决方案(iSCSI)
- LCSTS高质量中文短文本摘要数据集
- 智能卡PCSC读卡器指令发送工具
- ACS读卡器USB驱动程序 v4.0 官方版
- Polarization Optics in Telecommunication
- 虚拟化iSCSI SAN:实现虚拟化基础架构
- iSCSI技术之彻底剖析篇
- Adaptec:杭州学军中学iSCSI存储案例
- ConcreteMathematics2nd.pdf
- cs231a课件第一部分
- csdn_1.7T磁滞回线.xlsx
- Qt图片浏览器 --基于Qt的Graphics View f
- Mentor Graphics Expedition Enterprise v7.9.5.r
- Graphics Magic图像处理魔术师,含Delph
- es(elasticsearch)整合SpringCloudSpringBo
- css3绘制可爱卡通脸部表情特效
- js+css3猫头鹰眼睛跟随鼠标指针转动动
- css3图片放大缩小切换幻灯片效果
- Impact of bond order loss on surface and nanos
- 基于COMSOL Multiphysics的掏穴增透技术应
- MCS-51单片机定时器和计数器区别的理
- STM32F103VCT6TR - High-density performance lin
- LSI向渠道批量供应串行SCSI(SAS)解决
- lsimpt_scsi_srv08_x64.zip
- Codewarrior HCS12 V5.1 license
评论
共有 条评论