资源简介
CS(布谷鸟算法)、PSO(粒子群优化算法)源码中文逐行注释,很好的学习材料。
![](http://www.nz998.com/pic/68960.jpg)
代码片段和文件信息
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
- 上一篇:计算机操作系统 翟一鸣 清华大学后题答案
- 下一篇:步进电机的选型与计算
相关资源
- ccs官方软件及安装
-
st
yles 引文样式语言( CSL ) 引文样 - CCS中如何生成LIB文件-并在另外CCS项目
- CCS5.05.1可使用的license
- TI CCS V5.4 安装步骤及破解文件
- CCSv9链接及安装流程详解
- ecshop微信支付含手机版ectouch
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Fabrication and all-optical poling characteris
- 基于MVC模式的会员管理系统
- CSMA/CD等动画演示加源代码
- web班级网站设计代码
- Adobe Illustrator CS5原版amtlib.dll文件
- 2440 cs8900a 网卡驱动程序
- CS Selective Color Correct
- FIR低通滤波器 ccs运行环境
- cs5530的SPI程序
- 高校学生信息管理系统
- 基于CSocket的多人聊天室
- cs模式考试程序
- pcsx2-0.9.8-r4600
- 点阵字库 包含ACSII、字符、文字
- Game Physics Engine Development
- PCS7深入浅出西门子第一部V9.0
- CGCS2000高斯投影各投影带的定义文件
- CS1.6 透视自瞄多功能 开源.e
- BCM943602CS:943602CS三天线驱动
- VCS lab 和 VCS lab guide
评论
共有 条评论