![](/img/trans.png)
[英]How to perform stratified 10 fold cross validation for classification in MATLAB?
[英]How to perform 10 fold crossvalidation using matlab?
我正在嘗試對線性回歸模型執行10倍交叉驗證(CV),以確定CV_mean平方誤差。 我的數據在Matlab中以<500x1>的兩倍包含500個項目。
如果您有權訪問統計信息工具箱,則可以使用cvpartition
。
如果您有權訪問生物信息學工具箱,則可以使用crossvalind
。
如果您無權訪問任何工具箱,則必須編寫自己的函數。 似乎有一個SO進入這個 。
編輯
我鏈接的內容似乎很漫長。 我懷疑這是有效的,但是您可以編寫如下函數:
function [TrainInd, TestInd] = KFold(k, NoFolds, length)
start = floor((k-1)*length/NoFolds)+1;
stop = floor(k*length/NoFolds);
TestInd = false(1,length);
TestInd(start:stop) = true;
TrainInd = ~TestInd;
end
然后這樣稱呼它:
for k = 1:10
[TrainInd, TestInd] = KFold(k,10,11);
TrainData = x(TrainInd);
TestData = x(TestInd);
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.