用GA优化SVM的参数c和gamma

分类: matlab的那点事 |
clear
close all
load testData;
load trainData;
%选择的训练样本是7个种类,每类有7幅图片
train =
[TrainData(1:7,:);TrainData(8:14,:);TrainData(15:21,:);TrainData(22:28,:);TrainData
train_labels =
[trainLabel(1:7,:);trainLabel(8:14,:);trainLabel(15:21,:);trainLabel(22:28,:);trainLabel(29:35,:);trainLabel(36:42,:);trainLabel(43:49,:)];
%选择的测试样本还是这7个种类,每类有2幅图片
test =
[TestData(1:2,:);TestData(3:4,:);TestData(5:6,:);TestData(7:8,:);TestData(9:10,:);TestData(11:12,:);TestData(13:14,:)];
test_labels =
[testLabel(1:2,:);testLabel(3:4,:);testLabel(5:6,:);testLabel(7:8,:);testLabel(9:10,:);testLabel(11:12,:);testLabel(13:14,:)];
[train,pstrain]=mapminmax(train');
pstrain.ymin=0;
pstrain.ymax=1;
[train,pstrain]=mapminmax(train,pstrain);
[test,pstest]=mapminmax(test');
pstest.ymin=0;
petest.ymax=1;
[test,pstest]=mapminmax(test,pstest);
train=train';
test=test';
cmd2= ['-c ',num2str(bestc2),' -g ',num2str(bestg2)];
model2 = svmtrain(train_labels, train,cmd2);
[ptrain_label2,train_accuracy2]=svmpredict(train_labels, train,
model2);
[ptest_label2, test_accuracy2] = svmpredict(test_labels, test,
model2);
得到的结果图
http://s11/mw690/915bf3edgddc6b8dfc9aa&690