在進行分類任務時常常要進行交叉驗證
常用的函數是crossvalind,具體使用形式如下:
indices=crossvalind(‘Kfold’,100,5) ‘Kfold’是交叉驗證的參數,用K折交叉驗證用此參數。100可看做樣本數據有100個,5是把樣本數據分爲5堆,用其中4堆做訓練,剩下的一堆做測試。具體見下:
data=floor(100*rand(100,90));
indices=crossvalind('Kfold',100,5);
for k=1:1:5
test_label =(indices==k); %%% 測試索引
train_label =~test_label; %%% 訓練索引
test_data =data(test_label,:); %%% 測試索引
train_data =data(train_label,:); %%% 訓練索引
end
data是原始數據,100行90列,每行看做一個樣本,所以crossvalind中的參數100可看做100個樣本,得到indices是100個樣本對應的堆序號,即分成5堆,序號1-5,每堆序號對應相應地原始數據。
for循環內是分別取索引對應的數據