我是使用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);
任何人都想解释为什么它以这种方式起作用,但在使用测试集时却没有?
希望你们能帮助我;) 亲切的问候。