以优化SVM算法的参数c和g为例,对CS算法MATLAB源码进行了逐行中文注解。
完整程序和示例文件地址:http://download.csdn.net/detail/u013337691/9622335
链接:http://pan.baidu.com/s/1sl2BzKL 密码:pkdn

tic % 计时
%% 清空环境导入数据
clear
clc
close all
load wndspd % 示例数据为风速(时间序列)数据,共144个样本
% 训练/测试数据准备(用前3天预测后一天),用前100天做测试数据
train_input(1,:)=wndspd(1:97);
train_input(2,:)=wndspd(2:98);
train_input(3,:)=wndspd(3:99);
train_output=[wndspd(4:100)]';
test_input(1,:)=wndspd(101:end-3);
test_input(2,:)=wndspd(102:end-2);
test_input(3,:)=wndspd(103:end-1);
test_output=[wndspd(104:end)]';[input_train,rule1]=mapminmax(train_input);
[output_train,rule2]=mapminmax(train_output);
input_test=mapminmax('apply',test_input,rule1);
output_test=mapminmax('apply',test_output,rule2);
%% CS-SVR
time=20;
n=20; % n为巢穴数量
pa=0.25; % 被宿主发现的概率
dim = 2; % 需要寻优的参数个数
Lb=[0.01,0.01]; % 设置参数下界
Ub=[100,100]; % 设置参数上界% 随机初始化巢穴
nest=zeros(n,dim);
for i=1:n % 遍历每个巢穴nest(i,:)=Lb+(Ub-Lb).*rand(size(Lb)); % 对每个巢穴,随机初始化参数
endfitness=ones(1,n); % 目标函数值初始化
[fmin,bestnest,nest,fitness]=get_best_nest(nest,nest,fitness,input_train,output_train,input_test,output_test); % 找出当前最佳巢穴和参数%% 迭代开始
for t=1:timenew_nest=get_cuckoos(nest,bestnest,Lb,Ub); % 保留当前最优解,寻找新巢穴[~,~,nest,fitness]=get_best_nest(nest,new_nest,fitness,input_train,output_train,input_test,output_test); % 找出当前最佳巢穴和参数new_nest=empty_nests(nest,Lb,Ub,pa); % 发现并更新劣质巢穴% 找出当前最佳巢穴和参数[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness,input_train,output_train,input_test,output_test); if fnew<fmin,fmin=fnew;bestnest=best ;end
end
%% 打印参数选择结果
bestobjfun=fmin;
bestc=bestnest(1);
bestg=bestnest(2);
disp('打印参数选择结果');
str=sprintf('Best c = %g,Best g = %g',bestc,bestg);
disp(str)
%% 利用回归预测分析最佳的参数进行SVM网络训练
cmd_cs_svr=['-s 3 -t 2',' -c ',num2str(bestnest(1)),' -g ',num2str(bestnest(2))];
model_cs_svr=svmtrain(output_train',input_train',cmd_cs_svr); % SVM模型训练
%% SVM网络回归预测
[output_test_pre,acc]=svmpredict(output_test',input_test',model_cs_svr); % SVM模型预测及其精度
test_pre=mapminmax('reverse',output_test_pre',rule2);
test_pre = test_pre';err_pre=wndspd(104:end)-test_pre;
figure('Name','测试数据残差图')
set(gcf,'unit','centimeters','position',[0.5,5,30,5])
plot(err_pre,'*-');
figure('Name','原始-预测图')
plot(test_pre,'*r-');hold on;plot(wndspd(104:end),'bo-');
legend('预测','原始')
set(gcf,'unit','centimeters','position',[0.5,13,30,5])result=[wndspd(104:end),test_pre];MAE=mymae(wndspd(104:end),test_pre)
MSE=mymse(wndspd(104:end),test_pre)
MAPE=mymape(wndspd(104:end),test_pre)
%% 显示程序运行时间
toc

(广告)欢迎扫描关注微信公众号:Genlovhyy的数据小站(Gnelovy212)

CS(布谷鸟搜索)算法MATLAB源码逐行中文注解相关推荐

  1. bartlett 算法 matlab,GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)

    以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解. tic % 计时器 %% 清空环境变量 close all clear clc format compact %% ...

  2. GWO(灰狼优化)算法MATLAB源码逐行中文注解

    以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解. 完整程序和示例文件地址:http://download.csdn.net/detail/u013337691/962 ...

  3. GWO(灰狼优化)算法MATLAB源码逐行中文注解()

    以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解. tic % 计时器 %% 清空环境变量 close all clear clc format compact %% ...

  4. 灰狼优化算法求函数最优值matlab,GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)...

    2-l*((2)/Max_iteration); % 对每一次迭代,计算相应的a值,a decreases linearly fron 2 to 0% Update the Position of s ...

  5. ABC(智能蜂群算法)优化SVM_源码逐行中文注解

    ​最近发现要彻底.快速地弄懂一个算法,最好的办法就是找源码来,静下心,一行一行的学习.所以我把ABC算法的源码找来逐行做了中文注释,并以优化SVM参数为例,进行学习. 废话不多说,直接上MATLAB代 ...

  6. FA(萤火虫算法)MATLAB源码详细中文注解

    以优化SVM算法的参数c和g为例,对FA(萤火虫算法)MATLAB源码进行了逐行中文注解. 完整程序和示例文件地址:http://download.csdn.net/detail/u013337691 ...

  7. 分裂层次聚类matlab实现,凝聚层次聚类算法matlab源码

    <凝聚层次聚类算法matlab源码>由会员分享,可在线阅读,更多相关<凝聚层次聚类算法matlab源码(3页珍藏版)>请在人人文库网上搜索. 1.共享一个在数据挖掘课程中作为示 ...

  8. mean shift聚类matlab,meanshift目标跟踪源程序 meanshift跟踪算法MATLAB源码 - 下载 - 搜珍网...

    压缩包 : MeanShift+深入详细(MatLab源码).rar 列表 MeanShift+深入详细(MatLab源码)/meanshift文章.PPT.word文档.基于meanshift的跟踪 ...

  9. Metropolis-Hasting算法Matlab源码学习

    Part1:Matlab源码: clc;clear all;close all; X(1)=0; N=1e7; p=@(x) 5*normpdf(x,1)+4*normpdf(x,5)+5*normp ...

最新文章

  1. 随笔-tomcat的日志文件按日期每天生成
  2. 网络广告推广浅析网站的外链究竟要如何优化效果才会更好呢?
  3. java hibernate错误org/dom4j/DocumentException、org/jboss/logging/BasicLogger、org/apache/lucene/index...
  4. 【算法数据结构Java实现】时间复杂度为O(n)的最大和序列
  5. 1.14 sort()数组排序(升序和降序)
  6. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明
  7. java bmp rgb数组_将RGB数据写入BMP位图文件
  8. 关于解决vue.js中组件的template内容不能换行的问题
  9. java并发中的延迟初始化
  10. Python---实验九作业
  11. cortex m4 中文手册_江淮瑞风M4柴油版上市 售13.88-15.48万
  12. 简单区分NMOS和PMOS的方法
  13. 一种简单的图像显著性计算模型
  14. 【TSP】基于matlab人工鱼群算法求解旅行商问题【含Matlab源码 422期】
  15. 锐捷 重启计算机,提示“重启计算机后才能使用锐捷客户端”常用解决方法
  16. 豆丁网文库下载器,版本:201…
  17. 自考科目列表,自考本科,题库,自学考试,历年真题
  18. 使用layui实现省市区及编码联动(引入第三方插件)
  19. 【蓝桥杯】——PCF8591模块
  20. EasyUI 系列之 combobox 默认选中第一个 添加请选择选项

热门文章

  1. centos mysql双机备份_[原创]CentOS下Mysql双机互为备份
  2. gitee代码管理工具速通
  3. IT内审那点事 之 审计要点
  4. windows 10/11 安装wsl
  5. Android 获取手机当前电量
  6. 陈道明:体会无用之事的美妙
  7. springboot集成Quartz(简单版)job不存储数据库
  8. 程序链接之符号解析和重定位
  9. 交易模型 ▍ORB Nr4蜡烛形态
  10. 蓝桥杯国信长天单片机实战--交通灯设计