如何对数据集X进行K-fold交叉验证?
我已经查看了Matlab的网站,并尝试对数据集X进行了操作。以下是针对数据集X进行10折交叉验证的代码。
c= cvcrossvalidate(X,'kFold',10);
这会创建一个对象c
,但我不知道如何访问其中的不同部分并使用它们来测试我的分类器?即使查阅了各种资料,我还是无法理解。
回答:
请按照以下步骤操作:
C = crossvalind('Kfold', X_label, 10);for i = 1:10 Test = (C == i); Train = ~Test; SVMStruct = svmtrain ( X (Train,:), X_label (Train,:)); Result = svmclassify(SVMStruct, X (Test,:));end
X_label
= 你的数据标签。
X
= 你的数据集。