优化算法优化支持向量机(SVM)进行分类 |
您所在的位置:网站首页 › 分布式优化算法压缩器具体如何使用 › 优化算法优化支持向量机(SVM)进行分类 |
0、前言
采用优化算法优化SVM参数进行分类。包含GWO、WOA、AFSA、AO、BAT、GTO、HBA、MPA、POA、SSA、SMA、jSSA、HHO、EO、AOA、SO等优化算法对SVM的改进。 2、实现步骤SVM 为典型的核方法,首先选定核函数,确定待优化的核参数;其次,限定待优化参数的范围,设置适应度函数,应用优化算法寻优得到最佳参数;最终采用最优参数的SVM模型实现分类。 以AOA优化SVM为例,如下图所示: %% 优化SVM kerneltype=2;%核函数选择 [xx,trace,process]=AOASVM(P_train,P_test,T_train,T_test,kerneltype);%采用AOA优化算法优化SVM核参数 save result/AOASVMpara xx trace process%保存参数 下次就可注释掉,不用优化浪费时间 直接加载 load result/AOASVMpara figure plot(1-trace) legend('寻优进化曲线') xlabel('寻优代数') ylabel('适应度值') %% 采用优化的值重新训练svm gam=xx(1) sig2=xx(2) cmd=['-s 0 -t ',num2str(kerneltype),' -c ',num2str(sig2),' -g ',num2str(gam)]; model=svmtrain(T_train,P_train,cmd); % SVM模型训练 %% SVM网络预测 y_pre_train=svmpredict(zeros(size(P_train,1),1),P_train,model); y_pre_test=svmpredict(zeros(size(P_test,1),1),P_test,model); clc train_acc=sum(y_pre_train==T_train)/length(T_train) test_acc=sum(y_pre_test==T_test)/length(T_test)图中 :函数AOASVM的功能为采用AOA算法确定最佳适应度值对应的SVM核参数值 function [Best_P,Conv_curve,process]=AOASVM(P_train,P_test,T_train,T_test,kerneltype) display('AOA Working'); %Two variables to keep the positions and the fitness value of the best-obtained solution Dim=2; N=5;%种群数量 M_Iter=10;%寻优代数 %范围 LB=[1e-3 1e-3]; UB=[1 1];在函数AOASVM中设置种群数量、寻优代数、参数维度及限制范围。 for i=1:N%随机初始化速度,随机初始化位置 for j=1:Dim X( i, j ) = (UB(j)-LB(j))*rand+LB(j); end end Xnew=X; Ffun=zeros(1,size(X,1));% (fitness values) Ffun_new=zeros(1,size(Xnew,1));% (fitness values) %%设置AOA参数 MOP_Max=1; MOP_Min=0.2; C_Iter=1; Alpha=5; Mu=0.499; %% 计算初始适应度值 for i=1:size(X,1) Ffun(1,i)=fitnesssvm(X(i,:),P_train,P_test,T_train,T_test,kerneltype); %Calculate the fitness values of solutions if Ffun(1,i) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |