matlab中的交叉验证

cross Validation in matlab

我在crossval的文档中看到,matlab中的mcr = crossval('mcr',X,y,'Predfun',predfun)函数计算误分类率,但是如果应用10倍交叉验证,那么我们将有10个不同的错误分类的值,因为我们做了 10 次测试,每次测试都会产生一个结果,但是值 mcr 是单一的或标量的,那么它是取平均错误分类率还是取最小值..等等?

使用平均误分类率(跨所有折叠和所有蒙特卡洛重新分区)。下面这行crossval演示了平均损失的计算-

loss = sum(loss)/ (mcreps * sum(cvp.TestSize));

其中 loss 最初是每个交叉验证折叠和每个重新分区的损失向量,mcreps 是重新分区的数量,sum(cvp.TestSize) 是交叉的总大小-验证测试集。

这用于 MSE(均方误差)和 MCR 损失函数。