交叉验证matlab - crossval函数

时间:2014-05-27 21:25:27

标签: matlab machine-learning regression knn cross-validation

我不明白matlab中的函数“ crossval ”是什么作为第一个参数,我明白它是执行回归的函数,但我不知道得到“ 某些标准testval ”的意图。我需要在K-nn回归量上使用它,但是这些例子并没有让我清楚。

vals = crossval(fun,X)
  

每次调用时,乐趣都应该使用XTRAIN来适应模型   返回一些使用拟合的XTEST计算的标准testval   模型。

以下是我正在阅读的地方:Matlab reference

1 个答案:

答案 0 :(得分:3)

它应该与优化函数类似,其中拟合函数fun的返回值应该表明它与数据的拟合程度。正如the documentation所述,fun有两个参数,即训练数据集XTRAIN和测试数据集XTEST

如果您的数据X包含一列已知结果X(:,1)和其他功能列X(:, 2:end),并使用XTRAIN训练您的数据,那么您的返回值可能就像拟合模型的和平方误差一样简单:

testval = sum( (model(XTEST(:, 2:end)) - XTEST(:, 1)).^2 );

其中model(XTEST(:, 2:end))是测试数据集特征的拟合模型的结果,XTEST和XTEST(:, 1)是这些特征集的已知结果。