我正在尝试对我的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.
我没有尝试执行交叉验证,需要一些有关如何继续的帮助。