今天,本文基于MATLAB,首先构建基于RBF核函数与多项式核函数的混合核极限学习机模型;其次,针对RBF的一个核参数g与多项式的两个核参数poly1与poly2,RBF核矩阵的权重w(POLY就是1-w),以及正则化系数共5个超参数,采用贝叶斯框架进行优化。最后与单核的核极限学习机、混合核极限学习机进行对比,采用贝叶斯优化的混合核极限学习机回归具有最高的精度。
如下为不同函数的核矩阵。混合核就是用w*kernal_matrix1+(1-w)*kernal_matrix2 作为一个整体的核矩阵。因此w也是超参数之一。
function omega = kernel_matrix(Xtrain,kernel_type, kernel_pars,Xt)
nb_data = size(Xtrain,1);%nxm 样本数n,特征数为m
if strcmp(kernel_type,'RBF_kernel'),
if nargin<4,
XXh = sum(Xtrain.^2,2)*ones(1,nb_data);%nxn
omega = XXh+XXh'-2*(Xtrain*Xtrain');
omega = exp(-omega./kernel_pars(1));
else
XXh1 = sum(Xtrain.^2,2)*ones(1,size(Xt,1));
XXh2 = sum(Xt.^2,2)*ones(1,nb_data);
omega = XXh1+XXh2' - 2*Xtrain*Xt';
omega = exp(-omega./kernel_pars(1));
end
elseif strcmp(kernel_type,'poly_kernel')
if nargin<4,
omega = (Xtrain*Xtrain'+kernel_pars(1)).^kernel_pars(2);
else
omega = (Xtrain*Xt'+kernel_pars(1)).^kernel_pars(2);
end
else
error('核类型错误')
end
2.结果
2.1 单核的核极限学习机
2.2混合核极限学习机
2.3 贝叶斯优化混合核极限学习机
%% 选择要使用贝叶斯优化对哪些变量进行优化,并指定搜索范围。此外,指定变量是否为整数以及是否搜索对数空间中的区间。优化以下变量:
% rbf核的核参数rbf 范围是1e-3 1e3
% poly核的第一个核参数poly1 范围是1e-3 1e3
% rbf核的第二个核参数poly2 范围是1 10 ,幂是整数
% 正则化系数lambda 1e-3 1e3
% 组合核中rbf的权重w 0-1 ,poly是1-w
optimVars = [
optimizableVariable('rbf',[1e-3 1e3])
optimizableVariable('poly1',[1e-3 1e3])
optimizableVariable('poly2',[1 10],'Type','integer')
optimizableVariable('lambda',[1e-3 1e3])
optimizableVariable('w',[0 1])];
% 使用训练数据和验证数据作为输入,为贝叶斯优化器创建目标函数。目标函数训练一个HKELM并返回对验证集的均方误差
ObjFcn = makeObjFcn(P_train,T_train,P_test,T_test);
BayesObject = bayesopt(ObjFcn,optimVars,...
'MaxObj',10,...
'MaxTime',0.5*60*60,...
'IsObjectiveDeterministic',false,...
'UseParallel',false);
% 加载在优化中找到的最佳网络及其验证准确度。
bestIdx = BayesObject.IndexOfMinimumTrace(end);
fileName = BayesObject.UserDataTrace{bestIdx};
根据上述优化得到的最佳可行点(即最佳超参数)进行混合核极限学习机回归的建模,得到的结果如下
3:还有更多哦
1.贝叶斯优化混合核极限学习机用于回归预测
2.粒子群PSO优化混合核极限学习机用于回归预测
3.鲸鱼WOA优化混合核极限学习机用于回归预测
4.遗传GA优化混合核极限学习机用于回归预测
5.麻雀SSA优化混合核极限学习机用于回归预测
6.贝叶斯优化混合核极限学习机用于分类
代码链接:点这里