【发布时间】:2016-03-22 03:07:53
【问题描述】:
我是 matlab 新手。我想知道如何在 svm 代码中修复训练集和测试集,因为我有 find a code,代码随机选择测试集和训练集。我的数据库是 YMU 数据库,我应该如何使用 svm 代码修复训练集和测试集。因为我使用crossvalind 来随机选择训练集和测试集。我应该使用 crossvalind 更改哪个变量?
%load YMU database
%NMC is non-makeup , MC is makeup
%testingset = non-makeup, trainingset is makeup
load TestingSetNMC.mat
load TrainingSetMC.mat
load gnd_Test.mat
load gnd_Train.mat
data1 = TrainingSet;
data2 = TestingSet;
groups1 = ismember(gnd_Train,'data1');
groups2 = ismember(gnd_Test,'data2');
%crossvalind is random choose
[train] = crossvalind('holdOut',groups1);
[test] = crossvalind('holdOut',groups2);
cp = classperf(groups1);
svmStruct = svmtrain(data1(train,:),groups1(train),'showplot',true);
classes = svmclassify(svmStruct,data2(test,:),'showplot',true);
classperf(cp,classes,test);
cp.CorrectRate
【问题讨论】: