我不明白 MATLAB 中 “crossval” 函数的第一个参数是什么,我知道它是用于执行回归的函数,但我不理解 “some criterion testval” 的意图。我需要在 K-最近邻回归器上使用它,但示例并没有让我完全明白。
vals = crossval(fun,X)
每次调用时,fun 应该使用 XTRAIN 来拟合模型,然后返回使用该拟合模型在 XTEST 上计算出的某个标准 testval。
我正在阅读的参考资料在这里:Matlab 参考
回答:
这应该类似于优化函数,您的拟合函数 fun
返回的值应该表明它对数据的拟合程度。正如文档所述,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)
是这些特征集的已知结果。