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

vals = crossval(fun,X)

每次调用时,fun都应该使用XTRAIN来拟合一个模型,然后
返回在XTEST上使用
模型。
我在这里阅读:Matlab reference

最佳答案

它应该类似于优化函数,其中拟合函数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)是这些特征集的已知结果。

关于matlab - 交叉验证Matlab-Crossval函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23899223/

10-10 11:20