在MATLAB中将数据拆分为训练/测试数据集?

Amr*_*mro 9 matlab data-mining

经过一些研究,我在MATLAB中找到了两个函数来完成任务:

现在我用它cvpartition来创建n倍交叉验证子集,以及统计工具箱中的Dataset/ Nominalclasses.所以我只是想知道两者之间的区别和各自的优缺点是什么?

小智 3

扩展@Mr Fooz的答案

根据 cvpartition 和 crossvalind 的官方文档,它们看起来非常相似,但 crossvalind 看起来稍微灵活一些(它允许将 M 留出任意 M,而 cvpartition 只允许留出 1)。

...您是否总是可以使用具有适当 k 值的 kfold 交叉验证来模拟 left-M-out(将数据拆分为 k 折叠,在其中进行测试,在所有其他折叠上进行训练,并对所有折叠执行此操作,这不是真的吗?并取平均值),因为留一法是 kfold 的一种特殊情况,其中 k=观察次数?