麻雀算法(SSA)优化混合核极限学习机(HKELM)分类预测,多输入单输出模型,SSA-HKELM分类预测。

%采用混合核函数类型:RBF核函数和poly核函数
function omega = kernel_matrix(Xtrain,kernel_type1, kernel_type2,kernel_pars,Xt)
    %输入:Xtrain每行为一个输入
    nb_data = size(Xtrain,1);
    
    %%检查第一个核函数是否为RBF核函数 
    if strcmpi(kernel_type1,'RBF_kernel') || strcmpi(kernel_type1,'RBF')
        %输入参数小于(等于3)时是训练核矩阵,此处将训练数据映射到核空间
        if nargin<5
            XXh = sum(Xtrain.^2,2)*ones(1,nb_data);
            omega = XXh+XXh'-2*(Xtrain*Xtrain');
            omega = exp(-omega./kernel_pars(1));
        else
            %输入等于4时是将测试数据映射到核空间,此时第一个输入参数为训练数据
            %第4个参数为测试数据
            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
        omega1=kernel_pars(4)*omega;
    end
    
    %% 检查第二个核函数是否为多项式核函数
    if strcmpi(kernel_type2,'poly_kernel') || strcmpi(kernel_type2,'poly')
        if nargin<5
            omega = (Xtrain*Xtrain'+kernel_pars(2)).^kernel_pars(3);
        else
            omega = (Xtrain*Xt'+kernel_pars(2)).^kernel_pars(3);
        end
        omega2=(1-kernel_pars(4))*omega;

你可能感兴趣的:(算法,分类)