【问题标题】:cross Validation in matlabmatlab中的交叉验证
【发布时间】:2015-05-27 12:29:23
【问题描述】:

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

【问题讨论】:

    标签: matlab cross-validation


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你有什么想法吗,如果在这些 k 折交叉验证中获得最好的准确性(或最小的误分类)?
    • 好吧,您可以复制crossval 的代码并将该行更改为loss = min(loss),但我不知道您为什么想要最小 错误分类率(因为交叉验证的目的通常是告诉你一些关于你的平均泛化错误)。
    • 科学方法(即论文中测量的准确度)是否将平均误分类率作为准确度的标准衡量标准?我想在我的最终结果中取最好的分类准确率(我不知道这东西在科学上有多正确)
    猜你喜欢
    • 2017-06-09
    • 2016-06-04
    • 1970-01-01
    • 2018-01-15
    • 2015-09-06
    • 2013-02-26
    • 2019-04-11
    • 2015-01-08
    • 1970-01-01
    相关资源
    最近更新 更多