一、神经网络-支持向量机

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 1 数学部分 1.1 二维空间 ​ 2 算法部分

二、布谷鸟算法

受到蜜蜂群体的有组织的觅食过程的启发,Karaboga提出了模拟蜜蜂群体觅食过程的人工蜂群(Artificial Bee Colony) 算法用于解决多维度多峰谷的优化问题。该算法创始之初被用来寻找SphereRosenbrockRastrigin函数的最小值。 首先对蜜蜂基于摇摆舞进行觅食的过程特征进行介绍。在图1中,存在两个已发现的食物源A和B。初始时,潜在工蜂以非雇佣蜂的身份进行搜索。它并不知道蜂房附近的任何蜜源的信息。因此,它有以下两个可能的选择: (1)成为一个侦察蜂,秉着自身潜在动力或外在因素自发的搜索蜂房附近的区域(见图1中的S); (2)在观看摆尾舞后,成为一个被招募者,并开始搜索蜜源(见图1中的R)。 在定位蜜源之后,该蜜蜂能够利用自身的能力来记住食物源的位置,并立刻对它进行探索。该蜜蜂现在成为了一个雇佣蜂。雇佣蜂采到蜂蜜后,从蜜源处返回蜂房并将蜂蜜卸载到蜜室中。在卸载完蜂蜜后,雇佣蜂有下列三个选择: (1)放弃已经采集过的蜜源,成为一个受其他摇尾舞招募的跟随者(UF)。 (2)施展摇尾舞技,招募蜂房内的同伴,再次回到原先采集过的食物源(EF1)。 (3)不招募其它的蜜蜂,继续探索采集过的食物源(EF2)。

二、算法流程

人工蜂群算法由连续的四个阶段组成,分别是初始化阶段引领(雇佣)蜂阶段跟随蜂阶端侦察蜂阶段。 人工蜂群算法中将人工蜂群分为引领蜂跟随蜂侦察蜂三类,每一次搜索过程中,引领蜂和跟随蜂是先后开采食物源,即寻找最优解,而侦察蜂是观察是否陷入局部最优,若陷入局部最优则随机地搜索其它可能的食物源。每个食物源代表问题一个可能解,食物源的花蜜量对应相应解的质量(适应度值f i t fitfit)。 

1、初始化阶段

2、引领蜂阶段

3、跟随蜂阶段

4、侦察蜂阶段

5、食物源

​三、代码

clc;
clear;
close all;%% Problem DefinitionCostFunction=@(x) Sphere(x);        % Cost FunctionnVar=5;             % Number of Decision VariablesVarSize=[1 nVar];   % Decision Variables Matrix SizeVarMin=-10;         % Decision Variables Lower Bound
VarMax= 10;         % Decision Variables Upper Bound%% ABC SettingsMaxIt=200;              % Maximum Number of IterationsnPop=100;               % Population Size (Colony Size)nOnlooker=nPop;         % Number of Onlooker BeesL=round(0.6*nVar*nPop); % Abandonment Limit Parameter (Trial Limit)a=1;                    % Acceleration Coefficient Upper Bound%% Initialization% Empty Bee Structure
empty_bee.Position=[];
empty_bee.Cost=[];% Initialize Population Array
pop=repmat(empty_bee,nPop,1);% Initialize Best Solution Ever Found
BestSol.Cost=inf;% Create Initial Population
for i=1:nPoppop(i).Position=unifrnd(VarMin,VarMax,VarSize);pop(i).Cost=CostFunction(pop(i).Position);if pop(i).Cost<=BestSol.CostBestSol=pop(i);end
end% Abandonment Counter
C=zeros(nPop,1);% Array to Hold Best Cost Values
BestCost=zeros(MaxIt,1);%% ABC Main Loopfor it=1:MaxIt% Recruited Beesfor i=1:nPop% Choose k randomly, not equal to iK=[1:i-1 i+1:nPop];k=K(randi([1 numel(K)]));% Define Acceleration Coeff.phi=a*unifrnd(-1,+1,VarSize);% New Bee Positionnewbee.Position=pop(i).Position+phi.*(pop(i).Position-pop(k).Position);% Evaluationnewbee.Cost=CostFunction(newbee.Position);% Comparisionif newbee.Cost<=pop(i).Costpop(i)=newbee;elseC(i)=C(i)+1;endend% Calculate Fitness Values and Selection ProbabilitiesF=zeros(nPop,1);MeanCost = mean([pop.Cost]);for i=1:nPopF(i) = exp(-pop(i).Cost/MeanCost); % Convert Cost to FitnessendP=F/sum(F);% Onlooker Beesfor m=1:nOnlooker% Select Source Sitei=RouletteWheelSelection(P);% Choose k randomly, not equal to iK=[1:i-1 i+1:nPop];k=K(randi([1 numel(K)]));% Define Acceleration Coeff.phi=a*unifrnd(-1,+1,VarSize);% New Bee Positionnewbee.Position=pop(i).Position+phi.*(pop(i).Position-pop(k).Position);% Evaluationnewbee.Cost=CostFunction(newbee.Position);% Comparisionif newbee.Cost<=pop(i).Costpop(i)=newbee;elseC(i)=C(i)+1;endend% Scout Beesfor i=1:nPopif C(i)>=Lpop(i).Position=unifrnd(VarMin,VarMax,VarSize);pop(i).Cost=CostFunction(pop(i).Position);C(i)=0;endend% Update Best Solution Ever Foundfor i=1:nPopif pop(i).Cost<=BestSol.CostBestSol=pop(i);endend% Store Best Cost Ever FoundBestCost(it)=BestSol.Cost;% Display Iteration Informationdisp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);end%% Resultsfigure;
%plot(BestCost,'LineWidth',2);
semilogy(BestCost,'LineWidth',2);
xlabel('Iteration');
ylabel('Best Cost');
grid on;

5.参考文献:

书籍《MATLAB神经网络43个案例分析》

【SVM分类】基于布谷鸟算法优化实现SVM数据分类matlab源码相关推荐

  1. 【预测模型-ELM预测】基于布谷鸟算法优化极限学习机预测matlab代码

    1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于布谷鸟算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多 ...

  2. 【PID优化】基于蝗虫算法PID控制器优化设计含Matlab源码

    1 内容介绍 该文针对广泛应用的PID控制器,在MATLAB仿真软件环境下,开发出一个过程控制系统的仿真软件包,能够实现模型辨识和PID参数调节,为过程控制系统仿真研究提供了方便. 该软件界面友好,操 ...

  3. 【SVM分类】基于鲸鱼算法优化支持向量机实现数据分类matlab代码

    1 简介 Mirjalili和Lewis在2016年从座头鲸的猎食行为中得到启示,提出一种新的元启发式优化算法--鲸鱼优化算法.该算法仿照座头鲸的泡泡网觅食方法,通过收缩包围.螺旋位置更新以及随机捕食 ...

  4. 【优化求解-单目标求解】基于黑猩猩算法求解单目标问题matlab源码

    一.黑猩猩算法 This article proposes a novel metaheuristic algorithm called Chimp Optimization Algorithm (C ...

  5. 【优化控制】基于遗传算法实现优化LQR控制器含Matlab源码

    1 简介 车辆悬架系统是影响汽车行驶平顺性和乘坐舒适性的重要结构部件.传统的被动悬架由于其弹性元件刚度和减震器阻尼是固定不变的,这导致其只能适应某一特定路面行驶,限制了适应多样性路况的需求以及车辆性能 ...

  6. 【预测模型】基于遗传算法优化GRNN实现数据分类matlab源码

    1 模型 遗传算法和广义回归神经网络结合起来,构建出GA-GRNN方法,利用遗传算法的全局寻优和广义回归神经网络结构简单的特点,自动搜索和匹配最优光滑因子参数,实现数据葡萄酒数据精准分类.通过与实际分 ...

  7. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  8. 【BP预测】基于布谷鸟算法优化BP神经网络数据回归预测含Matlab源码

    1 简介 锂电池健康状态(SOH)的预测是电动汽车锂电池管理系统的最重要的关键技术之一;传统的误差逆向传播(BP)神经网络容易使权值和阈值陷入局部最优,从而导致预测结果不精确;结合布谷鸟搜索算法(CS ...

  9. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

最新文章

  1. Katalon Studio自动化测试框架使用【2】--- 项目设置(MacOS)
  2. java核心标签库,16.JSTL标签库(我的JavaEE笔记)
  3. C++ Boost 学习资源列表
  4. 牛客练习赛 56 E tarjan 割边
  5. “开发者的面试完全是无稽之谈”
  6. Java和C的关系及发展历程
  7. 程序员代码面试指南:IT 名企算法与数据结构题目最优解
  8. Spark机器学习(一)—Spark相关
  9. slitaz linux 包管理器,SliTaz
  10. python求圆锥体的表面积公式_求圆柱和圆锥的体积公式及表面积公式!!
  11. LTE CAT M1模块为辅助生活系统提供了宽带和智能手机的替代方案
  12. python对文本文件的读写
  13. 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
  14. Allegro导出元器件pad坐标和网络(附带ODB++插件下载)
  15. 万能DOS启动盘制作全攻略!(软盘+光盘+U盘+硬盘+NTFS+……)
  16. html block属性,css display block属性的意思、作用和效果
  17. 软考证书什么时候可以领到手?
  18. js源码分析(一)——Call
  19. freeswitch与外部网关链接
  20. 下面为子代选择器结合符的是_奥鹏2014秋福建师范大学《语言学概论》在线作业一答案...

热门文章

  1. 华为云,安全创新的云服务标杆,助力企业数字化转型
  2. C语言:找出10000以内所有的素数(质数)
  3. 多人局域网游戏纯蓝图
  4. 一键自动化批量安装服务脚本
  5. 李炎恢jQuery EasyUI中tree
  6. 机器人理论与应用技术学习总结
  7. 罗列当前文件夹下所有文件
  8. 数据结构实验报告(六)
  9. 第一文 SQL Server镜像简介
  10. 开源中国 2014 最受关注开源软件排行榜 TOP 50