经过一些研究,我在MATLAB中找到了两个完成任务的函数:
cvpartition
功能crossvalind
功能现在我使用cvpartition
创建了n倍交叉验证子集,以及统计工具箱中的Dataset
/ Nominal
类。所以我只是想知道两者之间的区别和各自的优缺点是什么?
答案 0 :(得分:2)
根据cvpartition和crossvalind的官方文档,它们看起来非常相似,但是crossvalind看起来稍微灵活一点(它允许M为任意M,而cvpartition只允许1离开)。
...是不是真的可以使用具有适当k值的kfold交叉验证来模拟离开M-out(将数据分成k折叠,在一个上测试,在所有其他上训练,并执行此操作所有折叠并取平均值)因为留一出是kfold的一个特例,其中k =观察数量?
答案 1 :(得分:2)
Amro,这不是您cvpartition
vs crossvalind
问题的直接答案,但是用户Sebastian Paris在Mathworks文件交换中有一个名为MulticlassGentleAdaboosting的贡献包括一个很好的用于枚举数组索引的函数集,用于计算以下采样和交叉验证策略的训练,测试和验证集:
有关详细信息,请参阅包中包含的演示文件,更具体地说,请参阅函数sampling.m
和sampling_set.m
。
答案 2 :(得分:1)
根据cvpartition和crossvalind的官方文档,它们看起来非常相似,但是crossvalind看起来稍微灵活一点(它允许M为任意M而离开,而cvpartition只允许离开1出)。
答案 3 :(得分:1)
我知道您的问题不是直接引用神经网络工具箱,但也许其他人可能会觉得这很有用。要将您的ANN输入数据分成测试/验证/训练数据,请使用'net.divideFcn'变量。
net.divideFcn = 'divideind';
net.divideParam.trainInd=1:94; % The first 94 inputs are for training.
net.divideParam.valInd=1:94; % The first 94 inputs are for validation.
net.divideParam.testInd=95:100; % The last 5 inputs are for testing the network.