function [nbest, fit_gen] = FA(costfhandle, u0, Lb, Ub, para, t_train, p_train)
%% 检查输入参数
if nargin < 5
para = [10, 100, 0.25, 0.20, 1];
end
if nargin < 4
Ub = [];
end
if nargin < 3
Lb = [];
end
if nargin < 2
disp('Usuage: FA_mincon(@cost,u0,Lb,Ub,para)');
end
%% 得到初始参数
num = para(1);
MaxGeneration = para(2);
alpha = para(3);
betamin = para(4);
gamma = para(5);
%% 检查上界向量与下界向量长度是否相同
if length(Lb) ~= length(Ub)
disp('Simple bounds/limits are improper!')
return
end
%% 计算待优化参数维度
dim = length(u0);
%% 初始化目标函数值
zn = ones(num, 1) * 10^100;
%% 初始化萤火虫位置
[ns, Lightn] = initial(num, dim, Lb, Ub, u0);
%% 迭代开始
for k = 1 : MaxGeneration
% 更新alpha(可选)
alpha = alpha_new(alpha, MaxGeneration);
% 对每个萤火虫计算目标函数值
for i = 1 : num
zn(i) = costfhandle(ns(i, :), t_train, p_train);
Lightn(i) = zn(i);
end
% 根据亮度排序
[Lightn, Index] = sort(zn);
ns_tmp = ns;
for i = 1 : num
ns(i, :) = ns_tmp(Index(i), :);
end
% 找出当前最优种群
nso = ns;
Lighto = Lightn;
nbest = ns(1, :);
cv = nbest;
err = objfun(cv, t_train, p_train);
% 保存最优值
fit_gen(k) = err;
% 向较优方向移动
ns = movepop(num, dim, ns, Lightn, nso, Lighto, alpha, betamin, gamma, Lb, Ub);
end
没有合适的资源?快使用搜索试试~ 我知道了~
萤火虫算法(FA)优化极限学习机(ELM)的分类预测,多特征输入模型 FA-ELM分类预测模型 多特征输入单输出的二分类及多
共10个文件
m:9个
xlsx:1个
需积分: 0 3 下载量 18 浏览量
2023-09-24
08:17:17
上传
评论
收藏 75KB ZIP 举报
温馨提示
萤火虫算法(FA)优化极限学习机(ELM)的分类预测,多特征输入模型。FA-ELM分类预测模型。 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。 程序语言为matlab,程序可出分类效果图,迭代优化图,混淆矩阵图。
资源推荐
资源详情
资源评论
收起资源包目录
5 FA-ELM分类 -2.zip (10个子文件)
elmtrain.m 594B
movepop.m 653B
initial.m 499B
elmpredict.m 536B
main.m 1KB
数据集.xlsx 73KB
alpha_new.m 142B
objfun.m 1KB
findlimits.m 311B
FA.m 1KB
共 10 条
- 1
资源评论
智能算法及其模型预测
- 粉丝: 1810
- 资源: 788
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功