我有36个用户的数据
如代码(MATLAB)所示,数据被加载到一个名为 Feat_Vec1 的矩阵中
clear;
for nc = 1 : 36 % nc number of users
% Load data into MATLAB
data{nc} = load( sprintf('U%02d_Acc_TimeD_FreqD_FDay.mat', nc) );
% assign data into Matrix
Feat_Vec1{nc} = data{nc}.Acc_TD_Feat_Vec(:,:);
end
对于每个用户,我有36行和143列, Feat_Vec1 包含 36 cells (用户数),每个单元格包含 36 rows and 143 columns
我想使用 9-Fold Cross Validation 将数据集划分为训练和测试 .
我见过documentation in MATLAB help但是不明白!想知道是否有人帮助我为每个用户编写9折交叉验证代码?
3 回答
我将修改您的代码,以显示如何为每个用户独立完成9倍交叉验证 . 这意味着,每个用户都将拥有自己的列车测试折叠 . 首先,9倍交叉验证意味着用户获得8/9的训练数据和1/9的测试数据 . 重复九次 .
在上面的代码中,每个用户有9对列车和测试集 . 例如,第3位用户的第8次列车 - 测试对可以被访问为:
继续你的代码:
现在你确定了折叠指数 . 此时不需要将数据收集到单个矩阵中,因为我们已经知道
N
. 但是,在for循环中使用数据进行训练和测试时,此变量可能很有用:希望能帮助到你
只是对上面的代码稍作修正