将数据集划分为训练,测试和验证子集(Matlab)

时间:2016-02-24 14:21:46

标签: matlab machine-learning partitioning

我是使用Matlab的新手,我试图实现以下情况: 我有一个7000多个条目的数据集。目标是在此数据上训练分类树(fitctree)。我将数据分成带有观测值(预测变量)的矩阵和带有类(类)的矩阵。使用cvpartition对数据进行分区。到目前为止,一切正常。

问题:我想创建三个带数据的子集:1个训练集,1个验证集和1个测试集。我想使用训练集训练树,并使用验证集验证其性能。在调整参数之后,我想在测试数据分区上运行最终测试。 为了对数据进行分区,我尝试创建一个cvpartition,它可以工作,例如

cvpart = cvpartition(class, 'k', 10);

然后在该测试集上执行另一个cvpartition,将其分成另外两组:

cvpart2 = cvpartition(cvpart.TestSize, 'k', 10);

可悲的是,在验证树的性能时,这似乎不起作用。当我跳过seond cvpartition并验证cvpart测试集的性能时,该模型表现完美。

更新:几天之后我发现它以这种方式使用它似乎有效:

cvpart2 = cvpartition(cvpart.TrainSize, 'k', 10);

任何人都想解释为什么它以这种方式起作用,但在使用测试集时却没有?

希望你们能帮助我;) 亲切的问候。

0 个答案:

没有答案