交叉驗證的理解

在進行分類任務時常常要進行交叉驗證

常用的函數是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循環內是分別取索引對應的數據

發佈了76 篇原創文章 · 獲贊 45 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章