• 大小: 36.25MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-13
  • 语言: Matlab
  • 标签: matlan  ABC_SV  

资源简介

使用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\GenerateSiftDescriptors.m
     文件         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个文件信息

评论

共有 条评论