使用交叉验证估计损失
返回函数的10倍交叉验证错误估计犯错
= crossval(标准
,X
,ÿ
'Predfun',predfun
)predfun
基于指定标准
,无论是'MSE'
(均方误差)或'MSC'
(错误分类率)。的行X
和ÿ
对应于观察,和的列X
对应于预测变量。
在这种情况下,crossval
执行以下10次交叉验证:
拆分意见的预测数据X
和响应变量ÿ
成10组,其中每一个具有近似相同数目的观测值。
使用最后九组观察来训练一个模型predfun
。将第一组观察值作为测试数据,将测试预测器数据传递到训练模型,并按照中指定的方法计算预测值predfun
。计算指定的错误标准
。
使用第一组和最后八组观察来训练指定的模型predfun
。使用观测的第二组作为测试数据,测试数据传递到训练的模型,并且如在指定的计算预测值predfun
。计算指定的错误标准
。
继续以类似的方式,直到每个组观察值恰好一次用作测试数据。
以标量的形式返回平均误差估计犯错
。
一个好的做法是使用分层(见分层
)当您使用交叉验证与分类算法。否则,一些测试集可能不包括对所有类的观察。
许多分类和回归函数允许您直接执行交叉验证。
当您使用适合的功能,如fitcsvm
,fitctree
,fitrtree
,您可以使用名称 - 值对参数指定交叉验证选项。或者,你可以先创建这些拟合函数模型,然后通过创建一个分区对象crossval
目标函数。使用kfoldLoss
和kfoldPredict
对象函数来计算用于所述分区的对象的损耗值和预测值。欲了解更多信息,请参阅ClassificationPartitionedModel
和RegressionPartitionedModel
。