资源简介
使用matlab实现蜂群SVM,粒子群SVM,遗传算法SVM,数据包含有公共数据集,公共图像数据集,图像特征提取用了词袋,保证可用(公共图像数据集太大,删除了)
代码片段和文件信息
%% 清空环境,准备数据
% function fFitness=ABC_SVM_exmp(fObjV)
% close all
% clear
% clc
tic % 计时器
% format compact
fprintf(‘\nClassification using Pyramid BOW rbf_svm\n‘);
% load the BOW representations the labels and the train and test set
load(pg_opts.trainset);
load(pg_opts.testset);
load(pg_opts.labels);
%% sift
load([pg_opts.globaldatapath‘/‘pyramid_opts.name])
train_data_labels = labels(trainset); % contains the labels of the trainset
train_data = pyramid_all(:trainset)‘; % contains the train data
[train_data_labelssindex]=sort(train_data_labels); % we sort the labels to ensure that the first label is ‘1‘ the second ‘2‘ etc
train_data=train_data(sindex:);
test_data_labels = labels(testset); % contains the labels of the testset
test_data = pyramid_all(:testset)‘; % contains the test data
fprintf(‘\nClassification using Pyramid BOW rbf_svm\n‘);
% load the BOW representations the labels and the train and test set
load(pg_opts.trainset);
load(pg_opts.testset);
load(pg_opts.labels);
%% sift
load([pg_opts.globaldatapath‘/‘pyramid_opts.name])
train_labels = labels(trainset); % contains the labels of the trainset
train_data = pyramid_all(:trainset)‘; % contains the train data
[train_labelssindex]=sort(train_labels); % we sort the labels to ensure that the first label is ‘1‘ the second ‘2‘ etc
train_data=train_data(sindex:);
test_labels = labels(testset); % contains the labels of the testset
test_data = pyramid_all(:testset)‘; % contains the test data
% contains the test data
[mtrainntrain] = size(train_data);
[mtestntest] = size(test_data);
dataset = [train_data;test_data];
[dataset_scaleps] = mapminmax(dataset‘01);
dataset_scale = dataset_scale‘;
train_data = dataset_scale(1:mtrain:);
test_adat = dataset_scale( (mtrain+1):(mtrain+mtest): );
%% %%%%%%%%%%%%%用ABC算法优化SVM中的参数c和g开始%%%%%%%%%%%%%%%%%%%%
%% 参数初始化
NP=20; % 蜂群规模
FoodNumber=NP/2; % 蜜源(解)数量
limit=100; % 当有蜜源连续没被更新的次数超过limit时,该蜜源将被重新初始化
maxCycle=10; % 最大迭代次数
% 待优化参数信息
D=2; % 待优化参数个数,次数为c和g两个
ub=ones(1D)*100; % 参数取值上界,此处将c和g的上界设为100
lb=ones(1D)*(0.01); % 参数取值下界,此处将c和g的下界设为0.01
runtime=2; % 可用于设置多次运行(让ABC算法运行runtime次)以考察程序的稳健性
BestGlobalMins=ones(1runtime); % 全局最小值初始化 ,这里的优化目标为SVM预测结果中的平均平方误差(MSE),初始化为最差值1
BestGlobalParams=zeros(runtimeD); % 用于存放ABC算法优化得到的最优参数
for r=1:runtime % 运行ABC算法runtime次
% 初始化蜜源
Range = repmat((ub-lb)[FoodNumber 1]);
Lower = repmat(lb [FoodNumber 1]);
Foods = rand(FoodNumberD) .* Range + Lower;
% 计算每个蜜源(解)得目标函数值,objfun为计算SVM预测的平均平方误差(MSE)的函数,根据自己的实际问题变异目标函数即可
ObjVal=ones(1FoodNumber);
for k = 1:FoodNumber
ObjVal(k) = objfun(Foods(k:)train_data_labelstrain_datatest_data_labelstest_data);
end
Fitness=calculateFitness(ObjVal); % 计算适应度函数值
trial=zeros(1FoodNumber); % 用于记录第i个蜜源有连
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-19 09:41 04ABC-SVM\
文件 12 2018-10-26 11:50 04ABC-SVM\.gitignore
文件 11181 2018-11-10 15:11 04ABC-SVM\ABC_SVM_exmp.m
文件 7867 2016-09-04 17:10 04ABC-SVM\ABC_SVR_exmp.m
文件 9141 2018-10-27 19:35 04ABC-SVM\ABC_p_SVM_exmp.m
目录 0 2018-10-26 11:51 04ABC-SVM\AdaBoost\
文件 376 2018-10-26 11:51 04ABC-SVM\AdaBoost\demo_adaboost.m
文件 23408 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_model.c
文件 13824 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_model.mexw32
文件 16896 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_model.mexw64
文件 7915 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_predict.c
文件 9728 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_predict.mexw32
文件 11264 2018-10-26 11:51 04ABC-SVM\AdaBoost\gentleboost_predict.mexw64
文件 5192 2018-10-26 11:51 04ABC-SVM\AdaBoost\iris.mat
文件 49 2018-10-26 11:51 04ABC-SVM\AdaBoost\make.m
目录 0 2018-10-26 11:50 04ABC-SVM\BOW\
文件 3709 2018-11-11 16:29 04ABC-SVM\BOW\CalculateDictionary.m
文件 3260 2018-11-11 16:32 04ABC-SVM\BOW\CompilePyramid.m
文件 1303 2018-10-26 11:50 04ABC-SVM\BOW\EuclideanDistance.m
文件 2690 2018-11-11 16:28 04ABC-SVM\BOW\GenerateSiftDesc
文件 569 2018-10-26 11:50 04ABC-SVM\BOW\MakeDataDirectory.m
文件 2384 2018-11-11 16:32 04ABC-SVM\BOW\do_assignment.m
文件 1475 2018-10-26 11:50 04ABC-SVM\BOW\do_classification_adaboost_bow.m
文件 1500 2018-10-26 11:50 04ABC-SVM\BOW\do_classification_adaboost_pyramid_bow.m
文件 2201 2018-10-26 11:50 04ABC-SVM\BOW\do_classification_inter_svm.m
文件 1746 2018-10-26 11:50 04ABC-SVM\BOW\do_classification_rbf_svm.m
文件 875 2018-10-26 11:50 04ABC-SVM\BOW\do_normalize.m
文件 2307 2018-10-26 11:50 04ABC-SVM\BOW\do_p_classification__inter_svm.m
文件 1385 2018-10-26 11:50 04ABC-SVM\BOW\do_p_classification__rbf_svm.m
文件 1199 2018-10-26 11:50 04ABC-SVM\BOW\draw_cm.m
文件 436 2018-10-26 11:50 04ABC-SVM\BOW\find_grid.m
............此处省略182个文件信息
评论
共有 条评论