对具有多类SVM的图像进行Matlab交叉验证

时间:2015-12-17 16:41:45

标签: matlab classification svm cross-validation

我正在尝试对我的SVM的图像执行交叉验证,其中我有3类标签用于分类," Good"," Ok"和"坏"。

对于我的数据集,我有一个120 * 20的单元格数组,主要是19列的特征,最后一列是120个不同图像的类标签。

SVM列车使用2个不同的列车标签进行

SVMStruct = svmtrain(normalizedTrainingSet , train_label, 'kernel_function', 'linear');
SVMStruct1 = svmtrain(normalizedTrainingSet , train_label1, 'kernel_function', 'linear');

其中" normalizedTrainingSet"是我的数据集的数字矩阵。 train_label是Bad vs Normal& Good的标签; train_label1是Good vs Normal& Bad的标签,我执行了一些if else语句来对它们进行排序。

我想要进行5次折叠的交叉验证,并且在每次折叠期间,我想为每个类别平均分割图像。例如,4个用于测试,16个用于每个折叠期间的培训,同样适用于所有3个类别。

以下是我的交叉验证代码。

K = 5; % The number of folds
N = size(DataSet, 1); 
idx = crossvalind('Kfold', N, K);
cp = classperf(train_label3); %train_label3 is the combination of all 3 categories in one array.

for i = 1:K
    Data_Set = DataSet(idx ~= i, :); % data to train on, 90% of the total.
    training_label = train_label3(idx ~= i, :); % class labels of training data.
    Test_Set = DataSet(idx == i, :); % data to test on, 10% of the total.
    testing_label = train_label3(idx == i, :); % class labels of test data.

我没有尝试执行交叉验证,需要一些有关如何继续的帮助。

0 个答案:

没有答案